[git commit] iproute: don't hardcode the path to config files

Denys Vlasenko vda.linux at googlemail.com
Thu Oct 8 15:06:06 UTC 2015


commit: http://git.busybox.net/busybox/commit/?id=d1eea8db92e963e3c482d96b10da2ec0f9c95770
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Allows using an alternate path for config files.

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
Signed-off-by: Christoph J. Thompson <cjsthompson at gmail.com>
Signed-off-by: Michael Bestas <mikeioannina at gmail.com>
---
 networking/Config.src            |    7 +++++++
 networking/libiproute/rt_names.c |   12 +++++++-----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/networking/Config.src b/networking/Config.src
index 76cbccf..43ccbf3 100644
--- a/networking/Config.src
+++ b/networking/Config.src
@@ -533,6 +533,13 @@ config FEATURE_IP_ROUTE
 	help
 	  Add support for routing table management to "ip".
 
+config FEATURE_IP_ROUTE_DIR
+	string "ip route configuration directory"
+	default "/etc/iproute2"
+	depends on FEATURE_IP_ROUTE
+	help
+	  Location of the "ip" applet routing configuration.
+
 config FEATURE_IP_TUNNEL
 	bool "ip tunnel"
 	default y
diff --git a/networking/libiproute/rt_names.c b/networking/libiproute/rt_names.c
index 8dea5ac..ca0bb5d 100644
--- a/networking/libiproute/rt_names.c
+++ b/networking/libiproute/rt_names.c
@@ -10,6 +10,8 @@
 #include "libbb.h"
 #include "rt_names.h"
 
+#define CONFDIR          CONFIG_FEATURE_IP_ROUTE_DIR
+
 typedef struct rtnl_tab_t {
 	const char *cached_str;
 	unsigned cached_result;
@@ -92,7 +94,7 @@ static void rtnl_rtprot_initialize(void)
 		return;
 	rtnl_rtprot_tab = xzalloc(sizeof(*rtnl_rtprot_tab));
 	memcpy(rtnl_rtprot_tab->tab, init_tab, sizeof(init_tab));
-	rtnl_tab_initialize("/etc/iproute2/rt_protos", rtnl_rtprot_tab->tab);
+	rtnl_tab_initialize(CONFDIR "/rt_protos", rtnl_rtprot_tab->tab);
 }
 
 #if 0 /* UNUSED */
@@ -129,7 +131,7 @@ static void rtnl_rtscope_initialize(void)
 	rtnl_rtscope_tab->tab[254] = "host";
 	rtnl_rtscope_tab->tab[253] = "link";
 	rtnl_rtscope_tab->tab[200] = "site";
-	rtnl_tab_initialize("/etc/iproute2/rt_scopes", rtnl_rtscope_tab->tab);
+	rtnl_tab_initialize(CONFDIR "/rt_scopes", rtnl_rtscope_tab->tab);
 }
 
 const char* FAST_FUNC rtnl_rtscope_n2a(int id)
@@ -159,7 +161,7 @@ static void rtnl_rtrealm_initialize(void)
 	if (rtnl_rtrealm_tab) return;
 	rtnl_rtrealm_tab = xzalloc(sizeof(*rtnl_rtrealm_tab));
 	rtnl_rtrealm_tab->tab[0] = "unknown";
-	rtnl_tab_initialize("/etc/iproute2/rt_realms", rtnl_rtrealm_tab->tab);
+	rtnl_tab_initialize(CONFDIR "/rt_realms", rtnl_rtrealm_tab->tab);
 }
 
 int FAST_FUNC rtnl_rtrealm_a2n(uint32_t *id, char *arg)
@@ -191,7 +193,7 @@ static void rtnl_rtdsfield_initialize(void)
 	if (rtnl_rtdsfield_tab) return;
 	rtnl_rtdsfield_tab = xzalloc(sizeof(*rtnl_rtdsfield_tab));
 	rtnl_rtdsfield_tab->tab[0] = "0";
-	rtnl_tab_initialize("/etc/iproute2/rt_dsfield", rtnl_rtdsfield_tab->tab);
+	rtnl_tab_initialize(CONFDIR "/rt_dsfield", rtnl_rtdsfield_tab->tab);
 }
 
 const char* FAST_FUNC rtnl_dsfield_n2a(int id)
@@ -227,7 +229,7 @@ static void rtnl_rttable_initialize(void)
 	rtnl_rttable_tab->tab[255] = "local";
 	rtnl_rttable_tab->tab[254] = "main";
 	rtnl_rttable_tab->tab[253] = "default";
-	rtnl_tab_initialize("/etc/iproute2/rt_tables", rtnl_rttable_tab->tab);
+	rtnl_tab_initialize(CONFDIR "/rt_tables", rtnl_rttable_tab->tab);
 }
 
 const char* FAST_FUNC rtnl_rttable_n2a(int id)


More information about the busybox-cvs mailing list