ifup/ifdown: make location of ifstate configurable

This commit is contained in:
Denis Vlasenko 2007-07-19 21:49:30 +00:00
parent 2414a96faa
commit 2a86a61c27
3 changed files with 16 additions and 3 deletions

View File

@ -225,6 +225,16 @@ config IFUPDOWN
"ifconfig", "route" and "run-parts" or the "ip" command, either "ifconfig", "route" and "run-parts" or the "ip" command, either
via busybox or via standalone utilities. 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 config FEATURE_IFUPDOWN_IP
bool "Use ip applet" bool "Use ip applet"
default n default n

View File

@ -10,7 +10,9 @@
* Changes to upstream version * Changes to upstream version
* Remove checks for kernel version, assume kernel version 2.2.0 or better. * Remove checks for kernel version, assume kernel version 2.2.0 or better.
* Lines in the interfaces file cannot wrap. * 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. * 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) static llist_t *read_iface_state(void)
{ {
llist_t *state_list = NULL; 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) { if (state_fp) {
char *start, *end_ptr; char *start, *end_ptr;
@ -1275,7 +1277,7 @@ int ifupdown_main(int argc, char **argv)
} }
/* Actually write the new state */ /* Actually write the new state */
state_fp = xfopen("/var/run/ifstate", "w"); state_fp = xfopen(CONFIG_IFUPDOWN_IFSTATE_PATH, "w");
state = state_list; state = state_list;
while (state) { while (state) {
if (state->data) { if (state->data) {

View File

@ -554,6 +554,7 @@ CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
CONFIG_FEATURE_IFCONFIG_HW=y CONFIG_FEATURE_IFCONFIG_HW=y
CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
CONFIG_IFUPDOWN=y CONFIG_IFUPDOWN=y
CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
CONFIG_FEATURE_IFUPDOWN_IP=y CONFIG_FEATURE_IFUPDOWN_IP=y
CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set # CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set