X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=contrib%2Fpackage%2Fiwinfo%2Fsrc%2Fiwinfo_madwifi.c;h=5289f42e0f7504a796e04ed822bf06cba7061a49;hp=9b761edfaf0d16031ef9af98e86702f75974d0cb;hb=66736c857476550c68720a4cf933ab2f6d04031d;hpb=07fafab9c16ec600d6621c9c67d7474c63ff705b diff --git a/contrib/package/iwinfo/src/iwinfo_madwifi.c b/contrib/package/iwinfo/src/iwinfo_madwifi.c index 9b761edfa..5289f42e0 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); @@ -796,8 +805,9 @@ int madwifi_get_freqlist(const char *ifname, char *buf, int *len) for( i = 0; i < chans.ic_nchans; i++ ) { - entry.mhz = chans.ic_chans[i].ic_freq; - entry.channel = chans.ic_chans[i].ic_ieee; + entry.mhz = chans.ic_chans[i].ic_freq; + entry.channel = chans.ic_chans[i].ic_ieee; + entry.restricted = 0; memcpy(&buf[bl], &entry, sizeof(struct iwinfo_freqlist_entry)); bl += sizeof(struct iwinfo_freqlist_entry);