[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox-cvs
Subject: [git commit] udhcpc: don't exit after backgrounding on -n -b
From: Denys Vlasenko <vda.linux () googlemail ! com>
Date: 2019-02-27 7:27:47
Message-ID: 20190227072922.1F3A180F7C () busybox ! osuosl ! org
[Download RAW message or body]
commit: https://git.busybox.net/busybox/commit/?id=87e216294af9eec39c0c1d553555f8a98c15db38
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
Currently, running "udhcpc -n -b" causes udhcpc to go to background and
then exit after some time unless a lease is obtained.
It's not very useful to do so
as the calling process doesn't know
if the lease was obtained or not anyway.
The code actually tries to favor "-b" over "-n",
but doesn't clear "-n" flag while clearing "-b" after backgrounding.
So, clear "-n" flag after going into background.
This effectively makes "-b" override "-n" completely
and "-n -b" behave the same as "-b".
This allows to override default "-n" option, passed to udhcpc by ifupdown,
without recompiling busybox.
URL: https://bugs.busybox.net/11691
Signed-off-by: Andrey Mazo <ahippo@yandex.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
networking/udhcp/d6_dhcpc.c | 8 +++++++-
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 */
_______________________________________________
busybox-cvs mailing list
busybox-cvs@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic