diff options
-rw-r--r-- | networking/udhcp/d6_dhcpc.c | 8 | ||||
-rw-r--r-- | networking/udhcp/dhcpc.c | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c index 38c91cbb4..8a4a4b7a5 100644 --- a/networking/udhcp/d6_dhcpc.c +++ b/networking/udhcp/d6_dhcpc.c @@ -1370,7 +1370,13 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv) bb_error_msg("no lease, forking to background"); client_background(); /* do not background again! */ - opt = ((opt & ~OPT_b) | OPT_f); + opt = ((opt & ~(OPT_b|OPT_n)) | OPT_f); + /* ^^^ also disables -n (-b takes priority over -n): + * ifup's default udhcpc options are -R -n, + * and users want to be able to add -b + * (in a config file) to make it background + * _and not exit_. + */ } else #endif if (opt & OPT_n) { /* abort if no lease */ diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index d491e8906..e2fb18aba 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c @@ -1484,7 +1484,13 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv) bb_error_msg("no lease, forking to background"); client_background(); /* do not background again! */ - opt = ((opt & ~OPT_b) | OPT_f); + opt = ((opt & ~(OPT_b|OPT_n)) | OPT_f); + /* ^^^ also disables -n (-b takes priority over -n): + * ifup's default udhcpc options are -R -n, + * and users want to be able to add -b + * (in a config file) to make it background + * _and not exit_. + */ } else #endif if (opt & OPT_n) { /* abort if no lease */ |