summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networking/udhcp/d6_dhcpc.c8
-rw-r--r--networking/udhcp/dhcpc.c8
2 files changed, 14 insertions, 2 deletions
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
index 38c91cb..8a4a4b7 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 d491e89..e2fb18a 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 */