diff options
Diffstat (limited to 'src/interface.c')
-rw-r--r-- | src/interface.c | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/src/interface.c b/src/interface.c index 4f1605a..b33472c 100644 --- a/src/interface.c +++ b/src/interface.c @@ -64,47 +64,3 @@ void interface_close(struct interface *i) { free(i); } - -int interface_is_assoc(struct interface *i, struct hw_addr *ap) { - struct hw_addr ap2; - struct iwreq req; - struct iw_statistics q; - - assert(i); - - if (ap) - memset(ap->addr, 0, ETH_ALEN); - - memset(&req, 0, sizeof(req)); - strncpy(req.ifr_ifrn.ifrn_name, i->name, IFNAMSIZ); - - if (ioctl(i->fd, SIOCGIWAP, &req) < 0) { - daemon_log(LOG_ERR, "Failed to get AP address\n"); - return -1; - } - - memcpy(ap2.addr, &(req.u.ap_addr.sa_data), ETH_ALEN); - - if (!is_assoc_ap(&ap2)) - return 0; - - memset(&req, 0, sizeof(req)); - strncpy(req.ifr_ifrn.ifrn_name, i->name, IFNAMSIZ); - - req.u.data.pointer = (caddr_t) &q; - req.u.data.length = sizeof(q); - req.u.data.flags = 1; - - if (ioctl(i->fd, SIOCGIWSTATS, &req) < 0) { - daemon_log(LOG_ERR, "Failed to get interface quality\n"); - return -1; - } - - if (q.qual.qual <= 0) - return 0; - - if (ap) - memcpy(ap->addr, ap2.addr, ETH_ALEN); - - return 1; -} |