[PATCH v2 18/33] factor out ifconfig for use with macvlan
M. Braun
michael-dev at fami-braun.de
Sat Sep 24 14:08:02 PDT 2016
From: Michael Braun <michael-dev at fami-braun.de>
Signed-off-by: Michael Braun <michael-dev at fami-braun.de>
---
hostapd/Makefile | 6 +++++-
src/ap/vlan_full.c | 8 +-------
src/ap/vlan_ifconfig.c | 9 ++++++++-
src/ap/vlan_ifconfig.h | 16 ++++++++++++++++
src/ap/vlan_init.c | 1 +
src/ap/vlan_util.h | 3 ---
6 files changed, 31 insertions(+), 12 deletions(-)
create mode 100644 src/ap/vlan_ifconfig.h
diff --git a/hostapd/Makefile b/hostapd/Makefile
index 46dffe5..20f7ef3 100644
--- a/hostapd/Makefile
+++ b/hostapd/Makefile
@@ -200,8 +200,8 @@ ifdef CONFIG_NO_VLAN
CFLAGS += -DCONFIG_NO_VLAN
else
OBJS += ../src/ap/vlan_init.o
-OBJS += ../src/ap/vlan_ifconfig.o
OBJS += ../src/ap/vlan.o
+NEED_IFCONFIG=y
ifdef CONFIG_FULL_DYNAMIC_VLAN
# Define CONFIG_FULL_DYNAMIC_VLAN to have hostapd manipulate bridges
# and VLAN interfaces for the VLAN feature.
@@ -215,6 +215,10 @@ endif
endif
endif
+ifdef NEED_IFCONFIG
+OBJS += ../src/ap/vlan_ifconfig.o
+endif
+
ifdef CONFIG_NO_CTRL_IFACE
CFLAGS += -DCONFIG_NO_CTRL_IFACE
else
diff --git a/src/ap/vlan_full.c b/src/ap/vlan_full.c
index aa42335..3740857 100644
--- a/src/ap/vlan_full.c
+++ b/src/ap/vlan_full.c
@@ -25,6 +25,7 @@
#include "wpa_auth.h"
#include "vlan_init.h"
#include "vlan_util.h"
+#include "vlan_ifconfig.h"
struct full_dynamic_vlan {
@@ -116,13 +117,6 @@ static int dyn_iface_put(struct hostapd_data *hapd, const char *ifname)
}
-static int ifconfig_down(const char *if_name)
-{
- wpa_printf(MSG_DEBUG, "VLAN: Set interface %s down", if_name);
- return ifconfig_helper(if_name, 0);
-}
-
-
/* This value should be 256 ONLY. If it is something else, then hostapd
* might crash!, as this value has been hard-coded in 2.4.x kernel
* bridging code.
diff --git a/src/ap/vlan_ifconfig.c b/src/ap/vlan_ifconfig.c
index ef953a5..0295ec5 100644
--- a/src/ap/vlan_ifconfig.c
+++ b/src/ap/vlan_ifconfig.c
@@ -16,7 +16,7 @@
#include "vlan_util.h"
-int ifconfig_helper(const char *if_name, int up)
+static int ifconfig_helper(const char *if_name, int up)
{
int fd;
struct ifreq ifr;
@@ -67,3 +67,10 @@ int iface_exists(const char *ifname)
{
return if_nametoindex(ifname);
}
+
+
+int ifconfig_down(const char *if_name)
+{
+ wpa_printf(MSG_DEBUG, "VLAN: Set interface %s down", if_name);
+ return ifconfig_helper(if_name, 0);
+}
diff --git a/src/ap/vlan_ifconfig.h b/src/ap/vlan_ifconfig.h
new file mode 100644
index 0000000..53c3fa2
--- /dev/null
+++ b/src/ap/vlan_ifconfig.h
@@ -0,0 +1,16 @@
+/*
+ * hostapd / VLAN ifconfig helpers
+ * Copyright 2003, Instant802 Networks, Inc.
+ * Copyright 2005-2006, Devicescape Software, Inc.
+ * Copyright (c) 2009, Jouni Malinen <j at w1.fi>
+ *
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
+ */
+
+#ifndef HOSTAPD_VLAN_IFCONFIG_H
+#define HOSTAPD_VLAN_IFCONFIG_H
+int ifconfig_up(const char *if_name);
+int iface_exists(const char *ifname);
+int ifconfig_down(const char *if_name);
+#endif /* HOSTAPD_VLAN_IFCONFIG_H */
diff --git a/src/ap/vlan_init.c b/src/ap/vlan_init.c
index 31e4fc6..f931f67 100644
--- a/src/ap/vlan_init.c
+++ b/src/ap/vlan_init.c
@@ -17,6 +17,7 @@
#include "wpa_auth.h"
#include "vlan_init.h"
#include "vlan_util.h"
+#include "vlan_ifconfig.h"
static int vlan_if_add(struct hostapd_data *hapd, struct hostapd_vlan *vlan,
diff --git a/src/ap/vlan_util.h b/src/ap/vlan_util.h
index 2446859..6a541d4 100644
--- a/src/ap/vlan_util.h
+++ b/src/ap/vlan_util.h
@@ -17,9 +17,6 @@ int vlan_add(const char *if_name, int vid, const char *vlan_if_name);
int vlan_rem(const char *if_name);
int vlan_set_name_type(unsigned int name_type);
-int ifconfig_helper(const char *if_name, int up);
-int ifconfig_up(const char *if_name);
-int iface_exists(const char *ifname);
int vlan_if_remove(struct hostapd_data *hapd, struct hostapd_vlan *vlan);
struct full_dynamic_vlan *
--
2.1.4
More information about the Hostap
mailing list