diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-04-12 13:58:11 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-04-12 13:58:11 +0000 |
commit | 3a46885c17ba051ced802e3d35b9ddc6bf10edf6 (patch) | |
tree | 22163205f0c0c511acbf2da8121fd22c05cbf45b /src/interface.c | |
parent | 6f81258a90dd9813246a76ccb35c72255541f5e1 (diff) |
preparation for 0.24
git-svn-id: file:///home/lennart/svn/public/ifplugd/trunk@109 2bf48fe7-cfc1-0310-909f-d9042e1e0fef
Diffstat (limited to 'src/interface.c')
-rw-r--r-- | src/interface.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/interface.c b/src/interface.c index d277612..6007172 100644 --- a/src/interface.c +++ b/src/interface.c @@ -163,6 +163,25 @@ interface_status_t interface_detect_beat_ethtool(int fd, char *iface) { return edata.data ? IFSTATUS_UP : IFSTATUS_DOWN; } +interface_status_t interface_detect_beat_iff(int fd, char *iface) { + + struct ifreq ifr; + + if (interface_auto_up) + interface_up(fd, iface); + + memset(&ifr, 0, sizeof(ifr)); + strncpy(ifr.ifr_name, iface, sizeof(ifr.ifr_name)-1); + + if (ioctl(fd, SIOCGIFFLAGS, &ifr) == -1) { + if (interface_do_message) + daemon_log(LOG_ERR, "SIOCGIFFLAGS failed: %s", strerror(errno)); + + return IFSTATUS_ERR; + } + + return ifr.ifr_flags & IFF_RUNNING ? IFSTATUS_UP : IFSTATUS_DOWN; +} static int get_wlan_qual_old(char *iface) { FILE *f; |