X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=contrib%2Fpackage%2Fiwinfo%2Fsrc%2Fiwinfo_madwifi.c;h=9c3bb2688ac213b6eb35c3cfb34a3beff153e1e2;hb=dabf916db20da0013033efb763b632aecaea20a5;hp=9b761edfaf0d16031ef9af98e86702f75974d0cb;hpb=07fafab9c16ec600d6621c9c67d7474c63ff705b;p=project%2Fluci.git diff --git a/contrib/package/iwinfo/src/iwinfo_madwifi.c b/contrib/package/iwinfo/src/iwinfo_madwifi.c index 9b761edfa..9c3bb2688 100644 --- a/contrib/package/iwinfo/src/iwinfo_madwifi.c +++ b/contrib/package/iwinfo/src/iwinfo_madwifi.c @@ -202,7 +202,10 @@ static int madwifi_ioctl(struct iwreq *wrq, const char *ifname, int cmd, void *d { /* prepare socket */ if( ioctl_socket == -1 ) + { ioctl_socket = socket(AF_INET, SOCK_DGRAM, 0); + fcntl(ioctl_socket, F_SETFD, fcntl(ioctl_socket, F_GETFD) | FD_CLOEXEC); + } strncpy(wrq->ifr_name, ifname, IFNAMSIZ); @@ -289,6 +292,12 @@ int madwifi_probe(const char *ifname) return ( !!madwifi_isvap(ifname, NULL) || madwifi_iswifi(ifname) ); } +void madwifi_close(void) +{ + if( ioctl_socket > -1 ) + close(ioctl_socket); +} + int madwifi_get_mode(const char *ifname, char *buf) { return wext_get_mode(ifname, buf);