mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	Update busybox to 1.28.2, refresh patches and default config.
* modify 230-add_nslookup_lede.patch as opt_complementary was removed
    Also move nslookup_longopts variable declaration to be inside
    the same conditional as the function itself.
* modify 250-date-k-flag.patch to match upstream (opt_complementary)
* remove 600-cve-2017-16544.patch that is upstreamed
Notes about config changes:
* Some applet-specific LONG_OPTIONS config options were removed
* Config help text indentation changed, caused lots of
  text formatting changes for convert_menuconfig.pl
* convert_defaults.pl moved lots of defaults around, summary of
  actual changes below
New applets/features:
---------------------
ARCH
HEXEDIT
MINIPS
NETCAT
NUKE
RESUME
RUN_INIT
SETFATTR
New options:
------------
FEATURE_CATN
FEATURE_CROND_SPECIAL_TIMES
FEATURE_LIBBUSYBOX_STATIC
FEATURE_SETPRIV_CAPABILITIES
FEATURE_SETPRIV_CAPABILITY_NAMES
FEATURE_SETPRIV_DUMP
FEATURE_SH_READ_FRAC
FEATURE_SWAPONOFF_LABEL
FEATURE_VOLUMEID_MINIX
FEATURE_XARGS_SUPPORT_ARGS_FILE
FEATURE_XARGS_SUPPORT_PARALLEL
HUSH_GETOPTS
HUSH_READONLY
HUSH_TIMES
Removed:
--------
FEATURE_HAVE_RPC
MSH
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
		
	
			
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/coreutils/date.c
 | 
						|
+++ b/coreutils/date.c
 | 
						|
@@ -123,6 +123,7 @@
 | 
						|
 //usage:	IF_FEATURE_DATE_ISOFMT(
 | 
						|
 //usage:     "\n	-D FMT		Use FMT for -d TIME conversion"
 | 
						|
 //usage:	)
 | 
						|
+//usage:     "\n	-k		Set Kernel timezone from localtime and exit"
 | 
						|
 //usage:     "\n"
 | 
						|
 //usage:     "\nRecognized TIME formats:"
 | 
						|
 //usage:     "\n	hh:mm[:ss]"
 | 
						|
@@ -139,9 +140,8 @@
 | 
						|
 
 | 
						|
 #include "libbb.h"
 | 
						|
 #include "common_bufsiz.h"
 | 
						|
-#if ENABLE_FEATURE_DATE_NANO
 | 
						|
-# include <sys/syscall.h>
 | 
						|
-#endif
 | 
						|
+#include <sys/time.h>
 | 
						|
+#include <sys/syscall.h>
 | 
						|
 
 | 
						|
 enum {
 | 
						|
 	OPT_RFC2822   = (1 << 0), /* R */
 | 
						|
@@ -149,8 +149,9 @@ enum {
 | 
						|
 	OPT_UTC       = (1 << 2), /* u */
 | 
						|
 	OPT_DATE      = (1 << 3), /* d */
 | 
						|
 	OPT_REFERENCE = (1 << 4), /* r */
 | 
						|
-	OPT_TIMESPEC  = (1 << 5) * ENABLE_FEATURE_DATE_ISOFMT, /* I */
 | 
						|
-	OPT_HINT      = (1 << 6) * ENABLE_FEATURE_DATE_ISOFMT, /* D */
 | 
						|
+	OPT_KERNELTZ  = (1 << 5), /* k */
 | 
						|
+	OPT_TIMESPEC  = (1 << 6) * ENABLE_FEATURE_DATE_ISOFMT, /* I */
 | 
						|
+	OPT_HINT      = (1 << 7) * ENABLE_FEATURE_DATE_ISOFMT, /* D */
 | 
						|
 };
 | 
						|
 
 | 
						|
 #if ENABLE_LONG_OPTS
 | 
						|
@@ -162,6 +163,7 @@ static const char date_longopts[] ALIGN1
 | 
						|
 	/*	"universal\0" No_argument       "u" */
 | 
						|
 		"date\0"      Required_argument "d"
 | 
						|
 		"reference\0" Required_argument "r"
 | 
						|
+		"set-kernel-tz\0" No_argument   "k"
 | 
						|
 		;
 | 
						|
 #endif
 | 
						|
 
 | 
						|
@@ -181,6 +183,8 @@ static void maybe_set_utc(int opt)
 | 
						|
 int date_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 | 
						|
 int date_main(int argc UNUSED_PARAM, char **argv)
 | 
						|
 {
 | 
						|
+	time_t tt;
 | 
						|
+	struct timezone tz;
 | 
						|
 	struct timespec ts;
 | 
						|
 	struct tm tm_time;
 | 
						|
 	char buf_fmt_dt2str[64];
 | 
						|
@@ -193,7 +197,7 @@ int date_main(int argc UNUSED_PARAM, cha
 | 
						|
 	char *isofmt_arg = NULL;
 | 
						|
 
 | 
						|
 	opt = getopt32long(argv, "^"
 | 
						|
-			"Rs:ud:r:"
 | 
						|
+			"Rs:ud:r:k"
 | 
						|
 			IF_FEATURE_DATE_ISOFMT("I::D:")
 | 
						|
 			"\0"
 | 
						|
 			"d--s:s--d"
 | 
						|
@@ -256,6 +260,31 @@ int date_main(int argc UNUSED_PARAM, cha
 | 
						|
 	if (*argv)
 | 
						|
 		bb_show_usage();
 | 
						|
 
 | 
						|
+	/* Setting of kernel timezone was requested */
 | 
						|
+	if (opt & OPT_KERNELTZ) {
 | 
						|
+		tt = time(NULL);
 | 
						|
+		localtime_r(&tt, &tm_time);
 | 
						|
+
 | 
						|
+		/* workaround warp_clock() on first invocation */
 | 
						|
+		memset(&tz, 0, sizeof(tz));
 | 
						|
+		syscall(SYS_settimeofday, NULL, &tz);
 | 
						|
+
 | 
						|
+		memset(&tz, 0, sizeof(tz));
 | 
						|
+#ifdef __USE_MISC
 | 
						|
+		tz.tz_minuteswest = -(tm_time.tm_gmtoff / 60);
 | 
						|
+#else
 | 
						|
+		tz.tz_minuteswest = -(tm_time.__tm_gmtoff / 60);
 | 
						|
+#endif
 | 
						|
+
 | 
						|
+		if (syscall(SYS_settimeofday, NULL, &tz))
 | 
						|
+		{
 | 
						|
+			bb_perror_msg("can't set kernel time zone");
 | 
						|
+			return EXIT_FAILURE;
 | 
						|
+		}
 | 
						|
+
 | 
						|
+		return EXIT_SUCCESS;
 | 
						|
+	}
 | 
						|
+
 | 
						|
 	/* Now we have parsed all the information except the date format
 | 
						|
 	 * which depends on whether the clock is being set or read */
 | 
						|
 
 |