diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-05-02 22:22:23 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-05-02 22:22:23 +0000 |
commit | f92df58d3d97bb75d7b12437d53dd97acfd01095 (patch) | |
tree | dc1e2cf0f99773cae06fc7b0dd81b711a08f50f0 /networking | |
parent | 3c82e48923b4b4343cbca2fb0981bc2a8a4ac009 (diff) | |
download | busybox-f92df58d3d97bb75d7b12437d53dd97acfd01095.tar.gz |
ifupdown: small optimization (avoid doing useless work if we are
not going to update state file)
Diffstat (limited to 'networking')
-rw-r--r-- | networking/ifupdown.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/networking/ifupdown.c b/networking/ifupdown.c index 0c822e2a1..5b2251777 100644 --- a/networking/ifupdown.c +++ b/networking/ifupdown.c @@ -1239,8 +1239,10 @@ int ifupdown_main(int argc, char **argv) if (!okay && !FORCE) { bb_error_msg("ignoring unknown interface %s", liface); any_failures = 1; - } else { + } else if (!NO_ACT) { /* update the state file */ + FILE *state_fp; + llist_t *state; llist_t *state_list = read_iface_state(); llist_t *iface_state = find_iface_state(state_list, iface); @@ -1259,17 +1261,15 @@ int ifupdown_main(int argc, char **argv) } /* Actually write the new state */ - if (!NO_ACT) { - FILE *state_fp = xfopen("/var/run/ifstate", "w"); - llist_t *state = state_list; - while (state) { - if (state->data) { - fprintf(state_fp, "%s\n", state->data); - } - state = state->link; + state_fp = xfopen("/var/run/ifstate", "w"); + state = state_list; + while (state) { + if (state->data) { + fprintf(state_fp, "%s\n", state->data); } - fclose(state_fp); + state = state->link; } + fclose(state_fp); llist_free(state_list, free); } } |