uint64_t FileHandle::Pos() const { int64_t const pos = ftell64(m_file); if (pos == INVALID_POS) THROWEX(FileException, (E2S())); ASSERT(pos >= 0, ()); return static_cast<uint64_t>(pos); }
uint64_t FileHandle::Size() const { int64_t const pos = ftell64(m_file); if (pos == INVALID_POS) THROWEX(FileException, (E2S(), pos)); if (fseek64(m_file, 0, SEEK_END)) THROWEX(FileException, (E2S())); int64_t const size = ftell64(m_file); if (size == INVALID_POS) THROWEX(FileException, (E2S(), size)); if (fseek64(m_file, pos, SEEK_SET)) THROWEX(FileException, (E2S(), pos)); ASSERT(size >= 0, ()); return static_cast<uint64_t>(size); }
const char * event_to_string(enum wpa_event_type event) { #define E2S(n) case EVENT_ ## n: return #n switch (event) { E2S(ASSOC); E2S(DISASSOC); E2S(MICHAEL_MIC_FAILURE); E2S(SCAN_RESULTS); E2S(ASSOCINFO); E2S(INTERFACE_STATUS); E2S(PMKID_CANDIDATE); E2S(STKSTART); E2S(TDLS); E2S(FT_RESPONSE); E2S(IBSS_RSN_START); E2S(AUTH); E2S(DEAUTH); E2S(ASSOC_REJECT); E2S(AUTH_TIMED_OUT); E2S(ASSOC_TIMED_OUT); E2S(FT_RRB_RX); E2S(WPS_BUTTON_PUSHED); E2S(TX_STATUS); E2S(RX_FROM_UNKNOWN); E2S(RX_MGMT); E2S(RX_ACTION); E2S(REMAIN_ON_CHANNEL); E2S(CANCEL_REMAIN_ON_CHANNEL); E2S(MLME_RX); E2S(RX_PROBE_REQ); E2S(NEW_STA); E2S(EAPOL_RX); E2S(SIGNAL_CHANGE); E2S(INTERFACE_ENABLED); E2S(INTERFACE_DISABLED); E2S(CHANNEL_LIST_CHANGED); E2S(INTERFACE_UNAVAILABLE); E2S(BEST_CHANNEL); E2S(UNPROT_DEAUTH); E2S(UNPROT_DISASSOC); E2S(STATION_LOW_ACK); E2S(P2P_DEV_FOUND); E2S(P2P_GO_NEG_REQ_RX); E2S(P2P_GO_NEG_COMPLETED); E2S(P2P_PROV_DISC_REQUEST); E2S(P2P_PROV_DISC_RESPONSE); E2S(P2P_SD_REQUEST); E2S(P2P_SD_RESPONSE); E2S(IBSS_PEER_LOST); E2S(DRIVER_GTK_REKEY); E2S(SCHED_SCAN_STOPPED); E2S(DRIVER_CLIENT_POLL_OK); E2S(EAPOL_TX_STATUS); E2S(WIFI_DISC_PEER); } return "UNKNOWN"; #undef E2S }
const char * event_to_string(enum wpa_event_type event) { #define E2S(n) case EVENT_ ## n: return #n switch (event) { E2S(ASSOC); E2S(DISASSOC); E2S(MICHAEL_MIC_FAILURE); E2S(SCAN_RESULTS); E2S(ASSOCINFO); E2S(INTERFACE_STATUS); E2S(PMKID_CANDIDATE); E2S(TDLS); E2S(FT_RESPONSE); E2S(IBSS_RSN_START); E2S(AUTH); E2S(DEAUTH); E2S(ASSOC_REJECT); E2S(AUTH_TIMED_OUT); E2S(ASSOC_TIMED_OUT); E2S(WPS_BUTTON_PUSHED); E2S(TX_STATUS); E2S(RX_FROM_UNKNOWN); E2S(RX_MGMT); E2S(REMAIN_ON_CHANNEL); E2S(CANCEL_REMAIN_ON_CHANNEL); E2S(RX_PROBE_REQ); E2S(NEW_STA); E2S(EAPOL_RX); E2S(SIGNAL_CHANGE); E2S(INTERFACE_ENABLED); E2S(INTERFACE_DISABLED); E2S(CHANNEL_LIST_CHANGED); E2S(INTERFACE_UNAVAILABLE); E2S(BEST_CHANNEL); E2S(UNPROT_DEAUTH); E2S(UNPROT_DISASSOC); E2S(STATION_LOW_ACK); E2S(IBSS_PEER_LOST); E2S(DRIVER_GTK_REKEY); E2S(SCHED_SCAN_STOPPED); E2S(DRIVER_CLIENT_POLL_OK); E2S(EAPOL_TX_STATUS); E2S(CH_SWITCH); E2S(WNM); E2S(CONNECT_FAILED_REASON); E2S(DFS_RADAR_DETECTED); E2S(DFS_CAC_FINISHED); E2S(DFS_CAC_ABORTED); E2S(DFS_NOP_FINISHED); E2S(SURVEY); E2S(SCAN_STARTED); E2S(AVOID_FREQUENCIES); E2S(NEW_PEER_CANDIDATE); E2S(ACS_CHANNEL_SELECTED); E2S(DFS_CAC_STARTED); E2S(P2P_LO_STOP); E2S(BEACON_LOSS); E2S(DFS_PRE_CAC_EXPIRED); E2S(EXTERNAL_AUTH); E2S(PORT_AUTHORIZED); E2S(STATION_OPMODE_CHANGED); E2S(INTERFACE_MAC_CHANGED); E2S(WDS_STA_INTERFACE_STATUS); } return "UNKNOWN"; #undef E2S }
void FileHandle::Write(void const * p, size_t size) { size_t const written = fwrite(p, 1, size, m_file); if (written != size || ferror(m_file)) THROWEX(FileException, (E2S(), written, size)); }
void FileHandle::Seek(uint64_t pos) { if (fseek64(m_file, pos, SEEK_SET)) THROWEX(FileException, (E2S(), pos)); }
void FileHandle::Read(void * p, size_t size) { size_t const readed = fread(p, 1, size, m_file); if (readed != size || ferror(m_file)) THROWEX(FileException, (E2S(), readed, size)); }
void FileHandle::Truncate(uint64_t size) { int const res = ftruncate(fileno(m_file), size); if (res) THROWEX(FileException, (E2S(), size)); }
void FileHandle::Flush() { if (fflush(m_file)) THROWEX(FileException, (E2S())); }