diff options
author | Michael Buch <michaelbuch12@gmail.com> | 2019-02-13 14:16:17 +0000 |
---|---|---|
committer | Aaron Marcher <me@drkhsh.at> | 2019-02-13 15:23:04 +0100 |
commit | a9193a757a510e07e69b18ca64d2e50d467f01c1 (patch) | |
tree | d212c5955e15642faadfd2dafc786c957210dafd | |
parent | c1dc896c806693a4a368abf59e6890d32d520074 (diff) |
close file descriptors and fix return values
-rw-r--r-- | components/wifi.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/components/wifi.c b/components/wifi.c index d99c46c..92c252e 100644 --- a/components/wifi.c +++ b/components/wifi.c @@ -211,14 +211,16 @@ int rssi_dbm; int sockfd; size_t len; + const char *fmt; if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { warn("socket 'AF_INET':"); - return 0; + return NULL; } /* Retreive MAC address of interface */ len = IEEE80211_ADDR_LEN; + fmt = NULL; if (load_ieee80211req(sockfd, interface, &bssid, IEEE80211_IOC_BSSID, &len)) { /* Retrieve info on station with above BSSID */ @@ -229,12 +231,13 @@ if (load_ieee80211req(sockfd, interface, &info, IEEE80211_IOC_STA_INFO, &len)) { rssi_dbm = info.sta.info[0].isi_noise + info.sta.info[0].isi_rssi / 2; - return bprintf("%d", RSSI_TO_PERC(rssi_dbm)); + + fmt = bprintf("%d", RSSI_TO_PERC(rssi_dbm)); } } close(sockfd); - return NULL; + return fmt; } const char * @@ -243,12 +246,14 @@ char ssid[IEEE80211_NWID_LEN + 1]; size_t len; int sockfd; + const char *fmt; if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { warn("socket 'AF_INET':"); - return 0; + return NULL; } + fmt = NULL; len = sizeof(ssid); memset(&ssid, 0, len); if (load_ieee80211req(sockfd, interface, &ssid, IEEE80211_IOC_SSID, &len )) { @@ -258,9 +263,10 @@ len = sizeof(ssid); ssid[len - 1] = '\0'; - return bprintf("%s", ssid); + fmt = bprintf("%s", ssid); } - return NULL; + close(sockfd); + return fmt; } #endif |