summaryrefslogtreecommitdiffstats
path: root/src/interface.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-04-12 13:58:11 +0000
committerLennart Poettering <lennart@poettering.net>2004-04-12 13:58:11 +0000
commit3a46885c17ba051ced802e3d35b9ddc6bf10edf6 (patch)
tree22163205f0c0c511acbf2da8121fd22c05cbf45b /src/interface.c
parent6f81258a90dd9813246a76ccb35c72255541f5e1 (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.c19
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;