udhcpc: don't exit after backgrounding on -n -b
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>
This commit is contained in:
parent
544143da0c
commit
87e216294a
@ -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 */
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user