#include "iwinfo_wl.h"
#include "iwinfo_wext.h"
-static int ioctl_socket = -1;
-
static int wl_ioctl(const char *name, int cmd, void *buf, int len)
{
struct ifreq ifr;
wl_ioctl_t ioc;
- /* prepare socket */
- if( ioctl_socket == -1 )
- ioctl_socket = socket(AF_INET, SOCK_DGRAM, 0);
-
/* do it */
ioc.cmd = cmd;
ioc.buf = buf;
ioc.len = len;
+
strncpy(ifr.ifr_name, name, IFNAMSIZ);
ifr.ifr_data = (caddr_t) &ioc;
- return ioctl(ioctl_socket, SIOCDEVPRIVATE, &ifr);
+ return iwinfo_ioctl(SIOCDEVPRIVATE, &ifr);
}
static struct wl_maclist * wl_read_assoclist(const char *ifname)
return 0;
}
+void wl_close(void)
+{
+ /* Nop */
+}
+
int wl_get_mode(const char *ifname, char *buf)
{
int ret = -1;
int wl_get_country(const char *ifname, char *buf)
{
- if( !wl_ioctl(ifname, WLC_GET_COUNTRY, buf, WLC_CNTRY_BUF_SZ) )
+ char ccode[WLC_CNTRY_BUF_SZ];
+
+ if( !wl_ioctl(ifname, WLC_GET_COUNTRY, ccode, WLC_CNTRY_BUF_SZ) )
+ {
+ /* IL0 -> World */
+ if( !strcmp(ccode, "IL0") )
+ sprintf(buf, "00");
+
+ /* YU -> RS */
+ else if( !strcmp(ccode, "YU") )
+ sprintf(buf, "RS");
+
+ else
+ memcpy(buf, ccode, 2);
+
return 0;
+ }
return -1;
}
return -1;
}
+int wl_get_hwmodelist(const char *ifname, int *buf)
+{
+ return wext_get_hwmodelist(ifname, buf);
+}
+
int wl_get_mbssid_support(const char *ifname, int *buf)
{
wlc_rev_info_t revinfo;