summaryrefslogtreecommitdiff
path: root/promisc.c
diff options
context:
space:
mode:
authorDaniel Borkmann <dborkman@redhat.com>2013-06-04 10:32:48 +0200
committerDaniel Borkmann <dborkman@redhat.com>2013-06-04 10:32:48 +0200
commitac5fd9168efaa4e149340340805b1be7425d8834 (patch)
tree6f87f03c79d0168c44f472c03f9f800c9883d266 /promisc.c
parent92206a78c27de6442f1428ccf8cd622fa3364a5a (diff)
xutils: break out promisc mode functions
Put them separately for the sake of maintanence. Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Diffstat (limited to 'promisc.c')
-rw-r--r--promisc.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/promisc.c b/promisc.c
new file mode 100644
index 0000000..721da18
--- /dev/null
+++ b/promisc.c
@@ -0,0 +1,25 @@
+#include <string.h>
+
+#include "promisc.h"
+#include "xutils.h"
+
+short enter_promiscuous_mode(char *ifname)
+{
+ short ifflags;
+
+ if (!strncmp("any", ifname, strlen("any")))
+ return 0;
+
+ ifflags = device_get_flags(ifname);
+ device_set_flags(ifname, ifflags | IFF_PROMISC);
+
+ return ifflags;
+}
+
+void leave_promiscuous_mode(char *ifname, short oldflags)
+{
+ if (!strncmp("any", ifname, strlen("any")))
+ return;
+
+ device_set_flags(ifname, oldflags);
+}