aports/main/busybox/0020-udhcpc-Don-t-background-if-n-is-given.patch
Sören Tempel 531e69840c main/busybox: upgrade to 1.37.0
Not a lot of big changes in this release, mostly code shrinks and bug
fixes here and there. Hence, I don't expect too much breakage. Most patches
applied as is and didn't require any changes either. Nonetheless, I
rebased the entire patchset and removed patches that were backported.

The 0001-modutils-check-ELF-header-before-calling-finit_modul.patch
should be superseded by an upstream modutils change which checks that
if the loaded module file path ends in .ko and if not attempts to
uncompress it first. Thereby preventing compressed modules to be
passed to the kernel and causing a weird error to be emitted. Therefore,
this patch was removed

See: https://git.busybox.net/busybox/commit/?id=af5277f883e8fc2e0236aa9ecc5115ecaffd0ccb
2024-10-20 10:16:15 +00:00

100 lines
3.5 KiB
Diff

From 1525edfc632c10164ffaa929a3d470c82802e6f9 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 6 Jul 2017 07:05:15 +0200
Subject: [PATCH] udhcpc: Don't background if -n is given
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
we need add -b to our udhcpc options to prevent boot forever if there are no
dhcp server. We also need a way for users to disable this behavior by making
it possible to set -n option at runtime.
Since busybox 1.31.0 -b takes precedence over -n [0]. However, since we
enable -b instead of -n by default (through our busyboxconfig) this is
not desired, this commit therefore also reverts the upstream patch
introducing this change.
See also: https://bugs.busybox.net/11691
[0]: https://git.busybox.net/busybox/commit/?id=87e216294af9eec39c0c1d553555f8a98c15db38
---
networking/udhcp/d6_dhcpc.c | 20 +++++++-------------
networking/udhcp/dhcpc.c | 20 +++++++-------------
2 files changed, 14 insertions(+), 26 deletions(-)
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
index edebf983b..1bc0cacfc 100644
--- a/networking/udhcp/d6_dhcpc.c
+++ b/networking/udhcp/d6_dhcpc.c
@@ -1404,25 +1404,19 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
leasefail:
change_listen_mode(LISTEN_NONE);
d6_run_script_no_option("leasefail");
+ if (opt & OPT_n) { /* abort if no lease */
+ bb_simple_info_msg("no lease, failing");
+ retval = 1;
+ goto ret;
+ }
#if BB_MMU /* -b is not supported on NOMMU */
if (opt & OPT_b) { /* background if no lease */
bb_simple_info_msg("no lease, forking to background");
client_background();
/* do not background again! */
- 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 */
- bb_simple_info_msg("no lease, failing");
- retval = 1;
- goto ret;
+ opt = ((opt & ~OPT_b) | OPT_f);
}
+#endif
/* Wait before trying again */
timeout = tryagain_timeout;
packet_num = 0;
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index 090fbcc07..215d01594 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -1446,25 +1446,19 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
leasefail:
change_listen_mode(LISTEN_NONE);
d4_run_script(NULL, "leasefail");
+ if (opt & OPT_n) { /* abort if no lease */
+ bb_simple_info_msg("no lease, failing");
+ retval = 1;
+ goto ret;
+ }
#if BB_MMU /* -b is not supported on NOMMU */
if (opt & OPT_b) { /* background if no lease */
bb_simple_info_msg("no lease, forking to background");
client_background();
/* do not background again! */
- 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 */
- bb_simple_info_msg("no lease, failing");
- retval = 1;
- goto ret;
+ opt = ((opt & ~OPT_b) | OPT_f);
}
+#endif
/* Wait before trying again */
timeout = tryagain_timeout;
packet_num = 0;