diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-19 21:49:30 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-19 21:49:30 +0000 |
commit | 2a86a61c270a7d64bcc18a81b0d9004699b1be0f (patch) | |
tree | 6c97c107c7eaae830141f6feb9de8fccfa938ef1 | |
parent | 2414a96faae906da8519229f12bebe5fe00078e7 (diff) | |
download | busybox-2a86a61c270a7d64bcc18a81b0d9004699b1be0f.tar.gz |
ifup/ifdown: make location of ifstate configurable
-rw-r--r-- | networking/Config.in | 10 | ||||
-rw-r--r-- | networking/ifupdown.c | 8 | ||||
-rw-r--r-- | scripts/defconfig | 1 |
3 files changed, 16 insertions, 3 deletions
diff --git a/networking/Config.in b/networking/Config.in index 77b5d2558..2ea0650a0 100644 --- a/networking/Config.in +++ b/networking/Config.in @@ -225,6 +225,16 @@ config IFUPDOWN "ifconfig", "route" and "run-parts" or the "ip" command, either via busybox or via standalone utilities. +config IFUPDOWN_IFSTATE_PATH + string "Absolute path to ifstate file" + default "/var/run/ifstate" + help + ifupdown keeps state information in a file called ifstate. + Typically it is located in /var/run/ifstate, however + some distributions tend to put it in other places + (debian, for example, uses /etc/network/run/ifstate). + This config option defines location of ifstate. + config FEATURE_IFUPDOWN_IP bool "Use ip applet" default n diff --git a/networking/ifupdown.c b/networking/ifupdown.c index e9f0a646c..5aa3fa5f1 100644 --- a/networking/ifupdown.c +++ b/networking/ifupdown.c @@ -10,7 +10,9 @@ * Changes to upstream version * Remove checks for kernel version, assume kernel version 2.2.0 or better. * Lines in the interfaces file cannot wrap. - * To adhere to the FHS, the default state file is /var/run/ifstate. + * To adhere to the FHS, the default state file is /var/run/ifstate + * (defined via CONFIG_IFUPDOWN_IFSTATE_PATH) and can be overridden by build + * configuration. * * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. */ @@ -1105,7 +1107,7 @@ static llist_t *find_iface_state(llist_t *state_list, const char *iface) static llist_t *read_iface_state(void) { llist_t *state_list = NULL; - FILE *state_fp = fopen("/var/run/ifstate", "r"); + FILE *state_fp = fopen(CONFIG_IFUPDOWN_IFSTATE_PATH, "r"); if (state_fp) { char *start, *end_ptr; @@ -1275,7 +1277,7 @@ int ifupdown_main(int argc, char **argv) } /* Actually write the new state */ - state_fp = xfopen("/var/run/ifstate", "w"); + state_fp = xfopen(CONFIG_IFUPDOWN_IFSTATE_PATH, "w"); state = state_list; while (state) { if (state->data) { diff --git a/scripts/defconfig b/scripts/defconfig index 4d12f8ec5..088ff791a 100644 --- a/scripts/defconfig +++ b/scripts/defconfig @@ -554,6 +554,7 @@ CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y CONFIG_FEATURE_IFCONFIG_HW=y CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y CONFIG_IFUPDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" CONFIG_FEATURE_IFUPDOWN_IP=y CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y # CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set |