libiwinfo: add restricted flag for freqlist
[project/luci.git] / contrib / package / iwinfo / src / iwinfo_madwifi.c
index 9b761ed..5289f42 100644 (file)
@@ -202,7 +202,10 @@ static int madwifi_ioctl(struct iwreq *wrq, const char *ifname, int cmd, void *d
 {
        /* prepare socket */
        if( ioctl_socket == -1 )
 {
        /* prepare socket */
        if( ioctl_socket == -1 )
+       {
                ioctl_socket = socket(AF_INET, SOCK_DGRAM, 0);
                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);
 
 
        strncpy(wrq->ifr_name, ifname, IFNAMSIZ);
 
@@ -289,6 +292,12 @@ int madwifi_probe(const char *ifname)
        return ( !!madwifi_isvap(ifname, NULL) || madwifi_iswifi(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);
 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++ )
                {
 
                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);
 
                        memcpy(&buf[bl], &entry, sizeof(struct iwinfo_freqlist_entry));
                        bl += sizeof(struct iwinfo_freqlist_entry);