busybox: update to 1.26.2
Refresh patches, delete patches that have been applied upstream. Signed-off-by: Magnus Kroken <mkroken@gmail.com> Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com> Signed-off-by: Felix Fietkau <nbd@nbd.name> [fix defaults]
This commit is contained in:
		 Magnus Kroken
					Magnus Kroken
				
			
				
					committed by
					
						 Felix Fietkau
						Felix Fietkau
					
				
			
			
				
	
			
			
			 Felix Fietkau
						Felix Fietkau
					
				
			
						parent
						
							5d2a9d2a3a
						
					
				
				
					commit
					84da2a677a
				
			
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -8,14 +8,14 @@ | ||||
| include $(TOPDIR)/rules.mk | ||||
|  | ||||
| PKG_NAME:=busybox | ||||
| PKG_VERSION:=1.25.1 | ||||
| PKG_RELEASE:=2 | ||||
| PKG_VERSION:=1.26.2 | ||||
| PKG_RELEASE:=1 | ||||
| PKG_FLAGS:=essential | ||||
|  | ||||
| PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | ||||
| PKG_SOURCE_URL:=https://www.busybox.net/downloads \ | ||||
| 		http://sources.buildroot.net | ||||
| PKG_HASH:=27667e0f2328fdbd79cfd622e4453e5c57e58f781c5da97c9be337d93aa2a02e | ||||
| PKG_HASH:=da3e44913fc1a9c9b7c5337ea5292da518683cbff32be630777f565d6036af16 | ||||
|  | ||||
| PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc BUSYBOX_CONFIG_PAM:libpam | ||||
| PKG_BUILD_PARALLEL:=1 | ||||
|   | ||||
| @@ -10,15 +10,18 @@ config BUSYBOX_CONFIG_HAVE_DOT_CONFIG | ||||
|  | ||||
| menu "Busybox Settings" | ||||
|  | ||||
| menu "General Configuration" | ||||
|  | ||||
| config BUSYBOX_CONFIG_DESKTOP | ||||
| 	bool "Enable options for full-blown desktop systems" | ||||
| 	default BUSYBOX_DEFAULT_DESKTOP | ||||
| 	help | ||||
| 	  Enable options and features which are not essential. | ||||
| 	  Select this only if you plan to use busybox on full-blown | ||||
| 	  desktop machine with common Linux distro, not on an embedded box. | ||||
| 	  Select this if you plan to use busybox on full-blown desktop machine | ||||
| 	  with common Linux distro, which needs higher level of command-line | ||||
| 	  compatibility. | ||||
|  | ||||
| 	  If you are preparing your build to be used on an embedded box | ||||
| 	  where you have tighter control over the entire set of userspace | ||||
| 	  tools, you can unselect this option for smaller code size. | ||||
|  | ||||
| config BUSYBOX_CONFIG_EXTRA_COMPAT | ||||
| 	bool "Provide compatible behavior for rare corner cases (bigger code)" | ||||
| @@ -57,30 +60,6 @@ config BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	  Answering 'N' here will disable such applets and hide the | ||||
| 	  corresponding configuration options. | ||||
|  | ||||
| choice | ||||
| 	prompt "Buffer allocation policy" | ||||
| 	default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK | ||||
| 	help | ||||
| 	  There are 3 ways BusyBox can handle buffer allocations: | ||||
| 	  - Use malloc. This costs code size for the call to xmalloc. | ||||
| 	  - Put them on stack. For some very small machines with limited stack | ||||
| 	    space, this can be deadly. For most folks, this works just fine. | ||||
| 	  - Put them in BSS. This works beautifully for computers with a real | ||||
| 	    MMU (and OS support), but wastes runtime RAM for uCLinux. This | ||||
| 	    behavior was the only one available for BusyBox versions 0.48 and | ||||
| 	    earlier. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC | ||||
| 	bool "Allocate with Malloc" | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK | ||||
| 	bool "Allocate on the Stack" | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS | ||||
| 	bool "Allocate in the .bss section" | ||||
|  | ||||
| endchoice | ||||
|  | ||||
| config BUSYBOX_CONFIG_SHOW_USAGE | ||||
| 	bool "Show applet usage messages" | ||||
| 	default BUSYBOX_DEFAULT_SHOW_USAGE | ||||
| @@ -143,131 +122,6 @@ config BUSYBOX_CONFIG_INSTALL_NO_USR | ||||
| 	  will install applets only to /bin and /sbin, | ||||
| 	  never to /usr/bin or /usr/sbin. | ||||
|  | ||||
| config BUSYBOX_CONFIG_LOCALE_SUPPORT | ||||
| 	bool "Enable locale support (system needs locale for this to work)" | ||||
| 	default BUSYBOX_DEFAULT_LOCALE_SUPPORT | ||||
| 	help | ||||
| 	  Enable this if your system has locale support and you would like | ||||
| 	  busybox to support locale settings. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	bool "Support Unicode" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_SUPPORT | ||||
| 	help | ||||
| 	  This makes various applets aware that one byte is not | ||||
| 	  one character on screen. | ||||
|  | ||||
| 	  Busybox aims to eventually work correctly with Unicode displays. | ||||
| 	  Any older encodings are not guaranteed to work. | ||||
| 	  Probably by the time when busybox will be fully Unicode-clean, | ||||
| 	  other encodings will be mainly of historic interest. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_USING_LOCALE | ||||
| 	bool "Use libc routines for Unicode (else uses internal ones)" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_LOCALE_SUPPORT | ||||
| 	help | ||||
| 	  With this option on, Unicode support is implemented using libc | ||||
| 	  routines. Otherwise, internal implementation is used. | ||||
| 	  Internal implementation is smaller. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV | ||||
| 	bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE | ||||
| 	help | ||||
| 	  With this option on, Unicode support is activated | ||||
| 	  only if locale-related variables have the value of the form | ||||
| 	  "xxxx.utf8" | ||||
|  | ||||
| 	  Otherwise, Unicode support will be always enabled and active. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SUBST_WCHAR | ||||
| 	int "Character code to substitute unprintable characters with" | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	default BUSYBOX_DEFAULT_SUBST_WCHAR | ||||
| 	help | ||||
| 	  Typical values are 63 for '?' (works with any output device), | ||||
| 	  30 for ASCII substitute control code, | ||||
| 	  65533 (0xfffd) for Unicode replacement character. | ||||
|  | ||||
| config BUSYBOX_CONFIG_LAST_SUPPORTED_WCHAR | ||||
| 	int "Range of supported Unicode characters" | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	default BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR | ||||
| 	help | ||||
| 	  Any character with Unicode value bigger than this is assumed | ||||
| 	  to be non-printable on output device. Many applets replace | ||||
| 	  such chars with substitution character. | ||||
|  | ||||
| 	  The idea is that many valid printable Unicode chars are | ||||
| 	  nevertheless are not displayed correctly. Think about | ||||
| 	  combining charachers, double-wide hieroglyphs, obscure | ||||
| 	  characters in dozens of ancient scripts... | ||||
| 	  Many terminals, terminal emulators, xterms etc will fail | ||||
| 	  to handle them correctly. Choose the smallest value | ||||
| 	  which suits your needs. | ||||
|  | ||||
| 	  Typical values are: | ||||
| 	  126 - ASCII only | ||||
| 	  767 (0x2ff) - there are no combining chars in [0..767] range | ||||
| 			(the range includes Latin 1, Latin Ext. A and B), | ||||
| 			code is ~700 bytes smaller for this case. | ||||
| 	  4351 (0x10ff) - there are no double-wide chars in [0..4351] range, | ||||
| 			code is ~300 bytes smaller for this case. | ||||
| 	  12799 (0x31ff) - nearly all non-ideographic characters are | ||||
| 			available in [0..12799] range, including | ||||
| 			East Asian scripts like katakana, hiragana, hangul, | ||||
| 			bopomofo... | ||||
| 	  0 - off, any valid printable Unicode character will be printed. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_COMBINING_WCHARS | ||||
| 	bool "Allow zero-width Unicode characters on output" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	help | ||||
| 	  With this option off, any Unicode char with width of 0 | ||||
| 	  is substituted on output. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS | ||||
| 	bool "Allow wide Unicode characters on output" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	help | ||||
| 	  With this option off, any Unicode char with width > 1 | ||||
| 	  is substituted on output. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT | ||||
| 	bool "Bidirectional character-aware line input" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE | ||||
| 	help | ||||
| 	  With this option on, right-to-left Unicode characters | ||||
| 	  are treated differently on input (e.g. cursor movement). | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE | ||||
| 	bool "In bidi input, support non-ASCII neutral chars too" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT | ||||
| 	help | ||||
| 	  In most cases it's enough to treat only ASCII non-letters | ||||
| 	  (i.e. punctuation, numbers and space) as characters | ||||
| 	  with neutral directionality. | ||||
| 	  With this option on, more extensive (and bigger) table | ||||
| 	  of neutral chars will be used. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN | ||||
| 	bool "Make it possible to enter sequences of chars which are not Unicode" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	help | ||||
| 	  With this option on, on line-editing input (such as used by shells) | ||||
| 	  invalid UTF-8 bytes are not substituted with the selected | ||||
| 	  substitution character. | ||||
| 	  For example, this means that entering 'l', 's', ' ', 0xff, [Enter] | ||||
| 	  at shell prompt will list file named 0xff (single char name | ||||
| 	  with char value 255), not file named '?'. | ||||
|  | ||||
| config BUSYBOX_CONFIG_PAM | ||||
| 	bool "Support for PAM (Pluggable Authentication Modules)" | ||||
| 	default BUSYBOX_DEFAULT_PAM | ||||
| @@ -275,19 +129,6 @@ config BUSYBOX_CONFIG_PAM | ||||
| 	  Use PAM in some busybox applets (currently login and httpd) instead | ||||
| 	  of direct access to password database. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE | ||||
| 	bool "Use sendfile system call" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  When enabled, busybox will use the kernel sendfile() function | ||||
| 	  instead of read/write loops to copy data between file descriptors | ||||
| 	  (for example, cp command does this a lot). | ||||
| 	  If sendfile() doesn't work, copying code falls back to read/write | ||||
| 	  loop. sendfile() was originally implemented for faster I/O | ||||
| 	  from files to sockets, but since Linux 2.6.33 it was extended | ||||
| 	  to work for many more file types. | ||||
|  | ||||
| config BUSYBOX_CONFIG_LONG_OPTS | ||||
| 	bool "Support for --long-options" | ||||
| 	default BUSYBOX_DEFAULT_LONG_OPTS | ||||
| @@ -496,9 +337,7 @@ config BUSYBOX_CONFIG_FEATURE_HAVE_RPC | ||||
| 	#  This is automatically selected if any of enabled applets need it. | ||||
| 	#  You do not need to select it manually. | ||||
|  | ||||
| endmenu | ||||
|  | ||||
| menu 'Build Options' | ||||
| comment 'Build Options' | ||||
|  | ||||
| config BUSYBOX_CONFIG_STATIC | ||||
| 	bool "Build BusyBox as a static binary (no shared libs)" | ||||
| @@ -673,9 +512,73 @@ config BUSYBOX_CONFIG_EXTRA_LDLIBS | ||||
| 	help | ||||
| 	  Additional LDLIBS to pass to the linker with -l. | ||||
|  | ||||
| endmenu | ||||
| comment 'Installation Options ("make install" behavior)' | ||||
|  | ||||
| menu 'Debugging Options' | ||||
| choice | ||||
| 	prompt "What kind of applet links to install" | ||||
| 	default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS | ||||
| 	help | ||||
| 	  Choose what kind of links to applets are created by "make install". | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS | ||||
| 	bool "as soft-links" | ||||
| 	help | ||||
| 	  Install applets as soft-links to the busybox binary. This needs some | ||||
| 	  free inodes on the filesystem, but might help with filesystem | ||||
| 	  generators that can't cope with hard-links. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS | ||||
| 	bool "as hard-links" | ||||
| 	help | ||||
| 	  Install applets as hard-links to the busybox binary. This might | ||||
| 	  count on a filesystem with few inodes. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS | ||||
| 	bool "as script wrappers" | ||||
| 	help | ||||
| 	  Install applets as script wrappers that call the busybox binary. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_APPLET_DONT | ||||
| 	bool "not installed" | ||||
| 	help | ||||
| 	  Do not install applet links. Useful when you plan to use | ||||
| 	  busybox --install for installing links, or plan to use | ||||
| 	  a standalone shell and thus don't need applet links. | ||||
|  | ||||
| endchoice | ||||
|  | ||||
| choice | ||||
| 	prompt "/bin/sh applet link" | ||||
| 	default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK | ||||
| 	depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS | ||||
| 	help | ||||
| 	  Choose how you install /bin/sh applet link. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK | ||||
| 	bool "as soft-link" | ||||
| 	help | ||||
| 	  Install /bin/sh applet as soft-link to the busybox binary. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK | ||||
| 	bool "as hard-link" | ||||
| 	help | ||||
| 	  Install /bin/sh applet as hard-link to the busybox binary. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER | ||||
| 	bool "as script wrapper" | ||||
| 	help | ||||
| 	  Install /bin/sh applet as script wrapper that calls | ||||
| 	  the busybox binary. | ||||
|  | ||||
| endchoice | ||||
|  | ||||
| config BUSYBOX_CONFIG_PREFIX | ||||
| 	string "BusyBox installation prefix" | ||||
| 	default BUSYBOX_DEFAULT_PREFIX | ||||
| 	help | ||||
| 	  Define your directory to install BusyBox files/subdirs in. | ||||
|  | ||||
| comment 'Debugging Options' | ||||
|  | ||||
| config BUSYBOX_CONFIG_DEBUG | ||||
| 	bool "Build BusyBox with extra Debugging symbols" | ||||
| @@ -769,78 +672,8 @@ endchoice | ||||
|  | ||||
| endmenu | ||||
|  | ||||
| menu 'Installation Options ("make install" behavior)' | ||||
|  | ||||
| choice | ||||
| 	prompt "What kind of applet links to install" | ||||
| 	default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS | ||||
| 	help | ||||
| 	  Choose what kind of links to applets are created by "make install". | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS | ||||
| 	bool "as soft-links" | ||||
| 	help | ||||
| 	  Install applets as soft-links to the busybox binary. This needs some | ||||
| 	  free inodes on the filesystem, but might help with filesystem | ||||
| 	  generators that can't cope with hard-links. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_APPLET_HARDLINKS | ||||
| 	bool "as hard-links" | ||||
| 	help | ||||
| 	  Install applets as hard-links to the busybox binary. This might | ||||
| 	  count on a filesystem with few inodes. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS | ||||
| 	bool "as script wrappers" | ||||
| 	help | ||||
| 	  Install applets as script wrappers that call the busybox binary. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_APPLET_DONT | ||||
| 	bool "not installed" | ||||
| 	help | ||||
| 	  Do not install applet links. Useful when you plan to use | ||||
| 	  busybox --install for installing links, or plan to use | ||||
| 	  a standalone shell and thus don't need applet links. | ||||
|  | ||||
| endchoice | ||||
|  | ||||
| choice | ||||
| 	prompt "/bin/sh applet link" | ||||
| 	default BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK | ||||
| 	depends on BUSYBOX_CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS | ||||
| 	help | ||||
| 	  Choose how you install /bin/sh applet link. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SYMLINK | ||||
| 	bool "as soft-link" | ||||
| 	help | ||||
| 	  Install /bin/sh applet as soft-link to the busybox binary. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_SH_APPLET_HARDLINK | ||||
| 	bool "as hard-link" | ||||
| 	help | ||||
| 	  Install /bin/sh applet as hard-link to the busybox binary. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER | ||||
| 	bool "as script wrapper" | ||||
| 	help | ||||
| 	  Install /bin/sh applet as script wrapper that calls | ||||
| 	  the busybox binary. | ||||
|  | ||||
| endchoice | ||||
|  | ||||
| config BUSYBOX_CONFIG_PREFIX | ||||
| 	string "BusyBox installation prefix" | ||||
| 	default BUSYBOX_DEFAULT_PREFIX | ||||
| 	help | ||||
| 	  Define your directory to install BusyBox files/subdirs in. | ||||
|  | ||||
| endmenu | ||||
|  | ||||
| source libbb/Config.in | ||||
|  | ||||
| endmenu | ||||
|  | ||||
| comment "Applets" | ||||
|  | ||||
| source archival/Config.in | ||||
|   | ||||
| @@ -31,7 +31,7 @@ config BUSYBOX_CONFIG_FEATURE_SEAMLESS_GZ | ||||
| 	  Make tar, rpm, modprobe etc understand .gz data. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_SEAMLESS_Z | ||||
| 	bool "tar, rpm, modprobe etc understand .Z data" | ||||
| 	bool "Make tar, rpm, modprobe etc understand .Z data" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_SEAMLESS_Z  # it is ancient | ||||
| 	help | ||||
| 	  Make tar, rpm, modprobe etc understand .Z data. | ||||
| @@ -79,10 +79,16 @@ config BUSYBOX_CONFIG_GUNZIP | ||||
| 	  You can use the `-t' option to test the integrity of | ||||
| 	  an archive, without decompressing it. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ZCAT | ||||
| 	bool "zcat" | ||||
| 	default BUSYBOX_DEFAULT_ZCAT | ||||
| 	help | ||||
| 	  Alias to "gunzip -c". | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_GUNZIP_LONG_OPTIONS | ||||
| 	bool "Enable long options" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_GUNZIP_LONG_OPTIONS | ||||
| 	depends on BUSYBOX_CONFIG_GUNZIP && BUSYBOX_CONFIG_LONG_OPTS | ||||
| 	depends on (BUSYBOX_CONFIG_GUNZIP || BUSYBOX_CONFIG_ZCAT) && BUSYBOX_CONFIG_LONG_OPTS | ||||
| 	help | ||||
| 	  Enable use of long options. | ||||
| config BUSYBOX_CONFIG_BUNZIP2 | ||||
| @@ -97,6 +103,12 @@ config BUSYBOX_CONFIG_BUNZIP2 | ||||
|  | ||||
| 	  Unless you have a specific application which requires bunzip2, you | ||||
| 	  should probably say N here. | ||||
|  | ||||
| config BUSYBOX_CONFIG_BZCAT | ||||
| 	bool "bzcat" | ||||
| 	default BUSYBOX_DEFAULT_BZCAT | ||||
| 	help | ||||
| 	  Alias to "bunzip2 -c". | ||||
| config BUSYBOX_CONFIG_UNLZMA | ||||
| 	bool "unlzma" | ||||
| 	default BUSYBOX_DEFAULT_UNLZMA | ||||
| @@ -109,31 +121,47 @@ config BUSYBOX_CONFIG_UNLZMA | ||||
| 	  The BusyBox unlzma applet is limited to decompression only. | ||||
| 	  On an x86 system, this applet adds about 4K. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_LZMA_FAST | ||||
| 	bool "Optimize unlzma for speed" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_LZMA_FAST | ||||
| 	depends on BUSYBOX_CONFIG_UNLZMA | ||||
| config BUSYBOX_CONFIG_LZCAT | ||||
| 	bool "lzcat" | ||||
| 	default BUSYBOX_DEFAULT_LZCAT | ||||
| 	help | ||||
| 	  This option reduces decompression time by about 25% at the cost of | ||||
| 	  a 1K bigger binary. | ||||
| 	  unlzma is a compression utility using the Lempel-Ziv-Markov chain | ||||
| 	  compression algorithm, and range coding. Compression | ||||
| 	  is generally considerably better than that achieved by the bzip2 | ||||
| 	  compressors. | ||||
|  | ||||
| 	  The BusyBox unlzma applet is limited to decompression only. | ||||
| 	  On an x86 system, this applet adds about 4K. | ||||
|  | ||||
| config BUSYBOX_CONFIG_LZMA | ||||
| 	bool "Provide lzma alias which supports only unpacking" | ||||
| 	bool "lzma -d" | ||||
| 	default BUSYBOX_DEFAULT_LZMA | ||||
| 	depends on BUSYBOX_CONFIG_UNLZMA | ||||
| 	help | ||||
| 	  Enable this option if you want commands like "lzma -d" to work. | ||||
| 	  IOW: you'll get lzma applet, but it will always require -d option. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_LZMA_FAST | ||||
| 	bool "Optimize unlzma for speed" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_LZMA_FAST | ||||
| 	depends on BUSYBOX_CONFIG_UNLZMA || BUSYBOX_CONFIG_LZCAT || BUSYBOX_CONFIG_LZMA | ||||
| 	help | ||||
| 	  This option reduces decompression time by about 25% at the cost of | ||||
| 	  a 1K bigger binary. | ||||
| config BUSYBOX_CONFIG_UNXZ | ||||
| 	bool "unxz" | ||||
| 	default BUSYBOX_DEFAULT_UNXZ | ||||
| 	help | ||||
| 	  unxz is a unlzma successor. | ||||
|  | ||||
| config BUSYBOX_CONFIG_XZCAT | ||||
| 	bool "xzcat" | ||||
| 	default BUSYBOX_DEFAULT_XZCAT | ||||
| 	help | ||||
| 	  Alias to "unxz -c". | ||||
|  | ||||
| config BUSYBOX_CONFIG_XZ | ||||
| 	bool "Provide xz alias which supports only unpacking" | ||||
| 	bool "xz -d" | ||||
| 	default BUSYBOX_DEFAULT_XZ | ||||
| 	depends on BUSYBOX_CONFIG_UNXZ | ||||
| 	help | ||||
| 	  Enable this option if you want commands like "xz -d" to work. | ||||
| 	  IOW: you'll get xz applet, but it will always require -d option. | ||||
| @@ -158,7 +186,7 @@ config BUSYBOX_CONFIG_CPIO | ||||
| 	  cpio has 110 bytes of overheads for every stored file. | ||||
|  | ||||
| 	  This implementation of cpio can extract cpio archives created in the | ||||
| 	  "newc" or "crc" format, it cannot create or modify them. | ||||
| 	  "newc" or "crc" format. | ||||
|  | ||||
| 	  Unless you have a specific application which requires cpio, you | ||||
| 	  should probably say N here. | ||||
| @@ -198,16 +226,6 @@ config BUSYBOX_CONFIG_DPKG_DEB | ||||
|  | ||||
| 	  Unless you have a specific application which requires dpkg-deb, | ||||
| 	  say N here. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY | ||||
| 	bool "Extract only (-x)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_DPKG_DEB_EXTRACT_ONLY | ||||
| 	depends on BUSYBOX_CONFIG_DPKG_DEB | ||||
| 	help | ||||
| 	  This reduces dpkg-deb to the equivalent of | ||||
| 	  "ar -p <deb> data.tar.gz | tar -zx". However it saves space as none | ||||
| 	  of the extra dpkg-deb, ar or tar options are needed, they are linked | ||||
| 	  to internally. | ||||
| config BUSYBOX_CONFIG_GZIP | ||||
| 	bool "gzip" | ||||
| 	default BUSYBOX_DEFAULT_GZIP | ||||
| @@ -249,10 +267,22 @@ config BUSYBOX_CONFIG_LZOP | ||||
| 	help | ||||
| 	  Lzop compression/decompresion. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNLZOP | ||||
| 	bool "unlzop" | ||||
| 	default BUSYBOX_DEFAULT_UNLZOP | ||||
| 	help | ||||
| 	  Lzop decompresion. | ||||
|  | ||||
| config BUSYBOX_CONFIG_LZOPCAT | ||||
| 	bool "lzopcat" | ||||
| 	default BUSYBOX_DEFAULT_LZOPCAT | ||||
| 	help | ||||
| 	  Alias to "unlzop -c". | ||||
|  | ||||
| config BUSYBOX_CONFIG_LZOP_COMPR_HIGH | ||||
| 	bool "lzop compression levels 7,8,9 (not very useful)" | ||||
| 	default BUSYBOX_DEFAULT_LZOP_COMPR_HIGH | ||||
| 	depends on BUSYBOX_CONFIG_LZOP | ||||
| 	depends on BUSYBOX_CONFIG_LZOP || BUSYBOX_CONFIG_UNLZOP || BUSYBOX_CONFIG_LZOPCAT | ||||
| 	help | ||||
| 	  High levels (7,8,9) of lzop compression. These levels | ||||
| 	  are actually slower than gzip at equivalent compression ratios | ||||
|   | ||||
| @@ -6,7 +6,6 @@ | ||||
|  | ||||
| menu "Console Utilities" | ||||
|  | ||||
|  | ||||
| config BUSYBOX_CONFIG_CHVT | ||||
| 	bool "chvt" | ||||
| 	default BUSYBOX_DEFAULT_CHVT | ||||
| @@ -14,27 +13,17 @@ config BUSYBOX_CONFIG_CHVT | ||||
| 	help | ||||
| 	  This program is used to change to another terminal. | ||||
| 	  Example: chvt 4 (change to terminal /dev/tty4) | ||||
|  | ||||
| config BUSYBOX_CONFIG_FGCONSOLE | ||||
| 	bool "fgconsole" | ||||
| 	default BUSYBOX_DEFAULT_FGCONSOLE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program prints active (foreground) console number. | ||||
|  | ||||
| config BUSYBOX_CONFIG_CLEAR | ||||
| 	bool "clear" | ||||
| 	default BUSYBOX_DEFAULT_CLEAR | ||||
| 	help | ||||
| 	  This program clears the terminal screen. | ||||
|  | ||||
| config BUSYBOX_CONFIG_DEALLOCVT | ||||
| 	bool "deallocvt" | ||||
| 	default BUSYBOX_DEFAULT_DEALLOCVT | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program deallocates unused virtual consoles. | ||||
|  | ||||
| config BUSYBOX_CONFIG_DUMPKMAP | ||||
| 	bool "dumpkmap" | ||||
| 	default BUSYBOX_DEFAULT_DUMPKMAP | ||||
| @@ -42,14 +31,18 @@ config BUSYBOX_CONFIG_DUMPKMAP | ||||
| 	help | ||||
| 	  This program dumps the kernel's keyboard translation table to | ||||
| 	  stdout, in binary format. You can then use loadkmap to load it. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FGCONSOLE | ||||
| 	bool "fgconsole" | ||||
| 	default BUSYBOX_DEFAULT_FGCONSOLE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program prints active (foreground) console number. | ||||
| config BUSYBOX_CONFIG_KBD_MODE | ||||
| 	bool "kbd_mode" | ||||
| 	default BUSYBOX_DEFAULT_KBD_MODE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program reports and sets keyboard mode. | ||||
|  | ||||
| config BUSYBOX_CONFIG_LOADFONT | ||||
| 	bool "loadfont" | ||||
| 	default BUSYBOX_DEFAULT_LOADFONT | ||||
| @@ -57,61 +50,6 @@ config BUSYBOX_CONFIG_LOADFONT | ||||
| 	help | ||||
| 	  This program loads a console font from standard input. | ||||
|  | ||||
| config BUSYBOX_CONFIG_LOADKMAP | ||||
| 	bool "loadkmap" | ||||
| 	default BUSYBOX_DEFAULT_LOADKMAP | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program loads a keyboard translation table from | ||||
| 	  standard input. | ||||
|  | ||||
| config BUSYBOX_CONFIG_OPENVT | ||||
| 	bool "openvt" | ||||
| 	default BUSYBOX_DEFAULT_OPENVT | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program is used to start a command on an unused | ||||
| 	  virtual terminal. | ||||
|  | ||||
| config BUSYBOX_CONFIG_RESET | ||||
| 	bool "reset" | ||||
| 	default BUSYBOX_DEFAULT_RESET | ||||
| 	help | ||||
| 	  This program is used to reset the terminal screen, if it | ||||
| 	  gets messed up. | ||||
|  | ||||
| config BUSYBOX_CONFIG_RESIZE | ||||
| 	bool "resize" | ||||
| 	default BUSYBOX_DEFAULT_RESIZE | ||||
| 	help | ||||
| 	  This program is used to (re)set the width and height of your current | ||||
| 	  terminal. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_RESIZE_PRINT | ||||
| 	bool "Print environment variables" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_RESIZE_PRINT | ||||
| 	depends on BUSYBOX_CONFIG_RESIZE | ||||
| 	help | ||||
| 	  Prints the newly set size (number of columns and rows) of | ||||
| 	  the terminal. | ||||
| 	  E.g.: | ||||
| 	  COLUMNS=80;LINES=44;export COLUMNS LINES; | ||||
|  | ||||
| config BUSYBOX_CONFIG_SETCONSOLE | ||||
| 	bool "setconsole" | ||||
| 	default BUSYBOX_DEFAULT_SETCONSOLE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program redirects the system console to another device, | ||||
| 	  like the current tty while logged in via telnet. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS | ||||
| 	bool "Enable long options" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_SETCONSOLE_LONG_OPTIONS | ||||
| 	depends on BUSYBOX_CONFIG_SETCONSOLE && BUSYBOX_CONFIG_LONG_OPTS | ||||
| 	help | ||||
| 	  Support long options for the setconsole applet. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SETFONT | ||||
| 	bool "setfont" | ||||
| 	default BUSYBOX_DEFAULT_SETFONT | ||||
| @@ -134,28 +72,6 @@ config BUSYBOX_CONFIG_DEFAULT_SETFONT_DIR | ||||
| 	  Directory to use if setfont's params are simple filenames | ||||
| 	  (not /path/to/file or ./file). Default is "" (no default directory). | ||||
|  | ||||
| config BUSYBOX_CONFIG_SETKEYCODES | ||||
| 	bool "setkeycodes" | ||||
| 	default BUSYBOX_DEFAULT_SETKEYCODES | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program loads entries into the kernel's scancode-to-keycode | ||||
| 	  map, allowing unusual keyboards to generate usable keycodes. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SETLOGCONS | ||||
| 	bool "setlogcons" | ||||
| 	default BUSYBOX_DEFAULT_SETLOGCONS | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program redirects the output console of kernel messages. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SHOWKEY | ||||
| 	bool "showkey" | ||||
| 	default BUSYBOX_DEFAULT_SHOWKEY | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Shows keys pressed. | ||||
|  | ||||
| comment "Common options for loadfont and setfont" | ||||
| 	depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT | ||||
|  | ||||
| @@ -172,5 +88,74 @@ config BUSYBOX_CONFIG_FEATURE_LOADFONT_RAW | ||||
| 	depends on BUSYBOX_CONFIG_LOADFONT || BUSYBOX_CONFIG_SETFONT | ||||
| 	help | ||||
| 	  Support old (raw) console fonts. | ||||
| config BUSYBOX_CONFIG_LOADKMAP | ||||
| 	bool "loadkmap" | ||||
| 	default BUSYBOX_DEFAULT_LOADKMAP | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program loads a keyboard translation table from | ||||
| 	  standard input. | ||||
| config BUSYBOX_CONFIG_OPENVT | ||||
| 	bool "openvt" | ||||
| 	default BUSYBOX_DEFAULT_OPENVT | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program is used to start a command on an unused | ||||
| 	  virtual terminal. | ||||
| config BUSYBOX_CONFIG_RESET | ||||
| 	bool "reset" | ||||
| 	default BUSYBOX_DEFAULT_RESET | ||||
| 	help | ||||
| 	  This program is used to reset the terminal screen, if it | ||||
| 	  gets messed up. | ||||
| config BUSYBOX_CONFIG_RESIZE | ||||
| 	bool "resize" | ||||
| 	default BUSYBOX_DEFAULT_RESIZE | ||||
| 	help | ||||
| 	  This program is used to (re)set the width and height of your current | ||||
| 	  terminal. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_RESIZE_PRINT | ||||
| 	bool "Print environment variables" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_RESIZE_PRINT | ||||
| 	depends on BUSYBOX_CONFIG_RESIZE | ||||
| 	help | ||||
| 	  Prints the newly set size (number of columns and rows) of | ||||
| 	  the terminal. | ||||
| 	  E.g.: | ||||
| 	  COLUMNS=80;LINES=44;export COLUMNS LINES; | ||||
| config BUSYBOX_CONFIG_SETCONSOLE | ||||
| 	bool "setconsole" | ||||
| 	default BUSYBOX_DEFAULT_SETCONSOLE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program redirects the system console to another device, | ||||
| 	  like the current tty while logged in via telnet. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS | ||||
| 	bool "Enable long options" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_SETCONSOLE_LONG_OPTIONS | ||||
| 	depends on BUSYBOX_CONFIG_SETCONSOLE && BUSYBOX_CONFIG_LONG_OPTS | ||||
| 	help | ||||
| 	  Support long options for the setconsole applet. | ||||
| config BUSYBOX_CONFIG_SETKEYCODES | ||||
| 	bool "setkeycodes" | ||||
| 	default BUSYBOX_DEFAULT_SETKEYCODES | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program loads entries into the kernel's scancode-to-keycode | ||||
| 	  map, allowing unusual keyboards to generate usable keycodes. | ||||
| config BUSYBOX_CONFIG_SETLOGCONS | ||||
| 	bool "setlogcons" | ||||
| 	default BUSYBOX_DEFAULT_SETLOGCONS | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This program redirects the output console of kernel messages. | ||||
| config BUSYBOX_CONFIG_SHOWKEY | ||||
| 	bool "showkey" | ||||
| 	default BUSYBOX_DEFAULT_SHOWKEY | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Shows keys pressed. | ||||
|  | ||||
| endmenu | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -194,28 +194,22 @@ config BUSYBOX_CONFIG_GREP | ||||
| 	help | ||||
| 	  grep is used to search files for a specified pattern. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_GREP_EGREP_ALIAS | ||||
| 	bool "Enable extended regular expressions (egrep & grep -E)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_GREP_EGREP_ALIAS | ||||
| 	depends on BUSYBOX_CONFIG_GREP | ||||
| config BUSYBOX_CONFIG_EGREP | ||||
| 	bool "egrep" | ||||
| 	default BUSYBOX_DEFAULT_EGREP | ||||
| 	help | ||||
| 	  Enabled support for extended regular expressions. Extended | ||||
| 	  regular expressions allow for alternation (foo|bar), grouping, | ||||
| 	  and various repetition operators. | ||||
| 	  Alias to "grep -E" | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_GREP_FGREP_ALIAS | ||||
| 	bool "Alias fgrep to grep -F" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_GREP_FGREP_ALIAS | ||||
| 	depends on BUSYBOX_CONFIG_GREP | ||||
| config BUSYBOX_CONFIG_FGREP | ||||
| 	bool "fgrep" | ||||
| 	default BUSYBOX_DEFAULT_FGREP | ||||
| 	help | ||||
| 	  fgrep sees the search pattern as a normal string rather than | ||||
| 	  regular expressions. | ||||
| 	  grep -F always works, this just creates the fgrep alias. | ||||
| 	  Alias to "grep -F" | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_GREP_CONTEXT | ||||
| 	bool "Enable before and after context flags (-A, -B and -C)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_GREP_CONTEXT | ||||
| 	depends on BUSYBOX_CONFIG_GREP | ||||
| 	depends on BUSYBOX_CONFIG_GREP || BUSYBOX_CONFIG_EGREP | ||||
| 	help | ||||
| 	  Print the specified number of leading (-B) and/or trailing (-A) | ||||
| 	  context surrounding our matching lines. | ||||
|   | ||||
| @@ -45,15 +45,27 @@ config BUSYBOX_CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE | ||||
| 	  Enable reading and parsing of $PWD/bootchartd.conf | ||||
| 	  and /etc/bootchartd.conf files. | ||||
| config BUSYBOX_CONFIG_HALT | ||||
| 	bool "poweroff, halt, and reboot" | ||||
| 	bool "halt" | ||||
| 	default BUSYBOX_DEFAULT_HALT | ||||
| 	help | ||||
| 	  Stop all processes and either halt, reboot, or power off the system. | ||||
| 	  Stop all processes and halt the system. | ||||
|  | ||||
| config BUSYBOX_CONFIG_POWEROFF | ||||
| 	bool "poweroff" | ||||
| 	default BUSYBOX_DEFAULT_POWEROFF | ||||
| 	help | ||||
| 	  Stop all processes and power off the system. | ||||
|  | ||||
| config BUSYBOX_CONFIG_REBOOT | ||||
| 	bool "reboot" | ||||
| 	default BUSYBOX_DEFAULT_REBOOT | ||||
| 	help | ||||
| 	  Stop all processes and reboot the system. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_CALL_TELINIT | ||||
| 	bool "Call telinit on shutdown and reboot" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_CALL_TELINIT | ||||
| 	depends on BUSYBOX_CONFIG_HALT && !BUSYBOX_CONFIG_INIT | ||||
| 	depends on (BUSYBOX_CONFIG_HALT || BUSYBOX_CONFIG_POWEROFF || BUSYBOX_CONFIG_REBOOT) && !BUSYBOX_CONFIG_INIT | ||||
| 	help | ||||
| 	  Call an external program (normally telinit) to facilitate | ||||
| 	  a switch to a proper runlevel. | ||||
| @@ -143,7 +155,7 @@ config BUSYBOX_CONFIG_FEATURE_EXTRA_QUIET | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_INIT_COREDUMPS | ||||
| 	bool "Support dumping core for child processes (debugging only)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_INIT_COREDUMPS	# not Y because this is a debug option | ||||
| 	depends on BUSYBOX_CONFIG_INIT || BUSYBOX_CONFIG_LINUXRC | ||||
| 	help | ||||
| 	  If this option is enabled and the file /.init_enable_core | ||||
|   | ||||
| @@ -45,6 +45,30 @@ config BUSYBOX_CONFIG_FEATURE_RTMINMAX | ||||
| 	  Support RTMIN[+n] and RTMAX[-n] signal names | ||||
| 	  in kill, killall etc. This costs ~250 bytes. | ||||
|  | ||||
| choice | ||||
| 	prompt "Buffer allocation policy" | ||||
| 	default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK | ||||
| 	help | ||||
| 	  There are 3 ways BusyBox can handle buffer allocations: | ||||
| 	  - Use malloc. This costs code size for the call to xmalloc. | ||||
| 	  - Put them on stack. For some very small machines with limited stack | ||||
| 	    space, this can be deadly. For most folks, this works just fine. | ||||
| 	  - Put them in BSS. This works beautifully for computers with a real | ||||
| 	    MMU (and OS support), but wastes runtime RAM for uCLinux. This | ||||
| 	    behavior was the only one available for BusyBox versions 0.48 and | ||||
| 	    earlier. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_BUFFERS_USE_MALLOC | ||||
| 	bool "Allocate with Malloc" | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK | ||||
| 	bool "Allocate on the Stack" | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_IN_BSS | ||||
| 	bool "Allocate in the .bss section" | ||||
|  | ||||
| endchoice | ||||
|  | ||||
| config BUSYBOX_CONFIG_PASSWORD_MINLEN | ||||
| 	int "Minimum password length" | ||||
| 	default BUSYBOX_DEFAULT_PASSWORD_MINLEN | ||||
| @@ -191,6 +215,131 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_ASK_TERMINAL | ||||
| 	  correctly, or want to save on code size (about 400 bytes), | ||||
| 	  then do not turn this option on. | ||||
|  | ||||
| config BUSYBOX_CONFIG_LOCALE_SUPPORT | ||||
| 	bool "Enable locale support (system needs locale for this to work)" | ||||
| 	default BUSYBOX_DEFAULT_LOCALE_SUPPORT | ||||
| 	help | ||||
| 	  Enable this if your system has locale support and you would like | ||||
| 	  busybox to support locale settings. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	bool "Support Unicode" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_SUPPORT | ||||
| 	help | ||||
| 	  This makes various applets aware that one byte is not | ||||
| 	  one character on screen. | ||||
|  | ||||
| 	  Busybox aims to eventually work correctly with Unicode displays. | ||||
| 	  Any older encodings are not guaranteed to work. | ||||
| 	  Probably by the time when busybox will be fully Unicode-clean, | ||||
| 	  other encodings will be mainly of historic interest. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_USING_LOCALE | ||||
| 	bool "Use libc routines for Unicode (else uses internal ones)" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_USING_LOCALE | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && BUSYBOX_CONFIG_LOCALE_SUPPORT | ||||
| 	help | ||||
| 	  With this option on, Unicode support is implemented using libc | ||||
| 	  routines. Otherwise, internal implementation is used. | ||||
| 	  Internal implementation is smaller. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV | ||||
| 	bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_CHECK_UNICODE_IN_ENV | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE | ||||
| 	help | ||||
| 	  With this option on, Unicode support is activated | ||||
| 	  only if locale-related variables have the value of the form | ||||
| 	  "xxxx.utf8" | ||||
|  | ||||
| 	  Otherwise, Unicode support will be always enabled and active. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SUBST_WCHAR | ||||
| 	int "Character code to substitute unprintable characters with" | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	default BUSYBOX_DEFAULT_SUBST_WCHAR | ||||
| 	help | ||||
| 	  Typical values are 63 for '?' (works with any output device), | ||||
| 	  30 for ASCII substitute control code, | ||||
| 	  65533 (0xfffd) for Unicode replacement character. | ||||
|  | ||||
| config BUSYBOX_CONFIG_LAST_SUPPORTED_WCHAR | ||||
| 	int "Range of supported Unicode characters" | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	default BUSYBOX_DEFAULT_LAST_SUPPORTED_WCHAR | ||||
| 	help | ||||
| 	  Any character with Unicode value bigger than this is assumed | ||||
| 	  to be non-printable on output device. Many applets replace | ||||
| 	  such characters with substitution character. | ||||
|  | ||||
| 	  The idea is that many valid printable Unicode chars | ||||
| 	  nevertheless are not displayed correctly. Think about | ||||
| 	  combining charachers, double-wide hieroglyphs, obscure | ||||
| 	  characters in dozens of ancient scripts... | ||||
| 	  Many terminals, terminal emulators, xterms etc will fail | ||||
| 	  to handle them correctly. Choose the smallest value | ||||
| 	  which suits your needs. | ||||
|  | ||||
| 	  Typical values are: | ||||
| 	  126 - ASCII only | ||||
| 	  767 (0x2ff) - there are no combining chars in [0..767] range | ||||
| 			(the range includes Latin 1, Latin Ext. A and B), | ||||
| 			code is ~700 bytes smaller for this case. | ||||
| 	  4351 (0x10ff) - there are no double-wide chars in [0..4351] range, | ||||
| 			code is ~300 bytes smaller for this case. | ||||
| 	  12799 (0x31ff) - nearly all non-ideographic characters are | ||||
| 			available in [0..12799] range, including | ||||
| 			East Asian scripts like katakana, hiragana, hangul, | ||||
| 			bopomofo... | ||||
| 	  0 - off, any valid printable Unicode character will be printed. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_COMBINING_WCHARS | ||||
| 	bool "Allow zero-width Unicode characters on output" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_COMBINING_WCHARS | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	help | ||||
| 	  With this option off, any Unicode char with width of 0 | ||||
| 	  is substituted on output. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_WIDE_WCHARS | ||||
| 	bool "Allow wide Unicode characters on output" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_WIDE_WCHARS | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	help | ||||
| 	  With this option off, any Unicode char with width > 1 | ||||
| 	  is substituted on output. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT | ||||
| 	bool "Bidirectional character-aware line input" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_BIDI_SUPPORT | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT && !BUSYBOX_CONFIG_UNICODE_USING_LOCALE | ||||
| 	help | ||||
| 	  With this option on, right-to-left Unicode characters | ||||
| 	  are treated differently on input (e.g. cursor movement). | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_NEUTRAL_TABLE | ||||
| 	bool "In bidi input, support non-ASCII neutral chars too" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_BIDI_SUPPORT | ||||
| 	help | ||||
| 	  In most cases it's enough to treat only ASCII non-letters | ||||
| 	  (i.e. punctuation, numbers and space) as characters | ||||
| 	  with neutral directionality. | ||||
| 	  With this option on, more extensive (and bigger) table | ||||
| 	  of neutral chars will be used. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN | ||||
| 	bool "Make it possible to enter sequences of chars which are not Unicode" | ||||
| 	default BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN | ||||
| 	depends on BUSYBOX_CONFIG_UNICODE_SUPPORT | ||||
| 	help | ||||
| 	  With this option on, on line-editing input (such as used by shells) | ||||
| 	  invalid UTF-8 bytes are not substituted with the selected | ||||
| 	  substitution character. | ||||
| 	  For example, this means that entering 'l', 's', ' ', 0xff, [Enter] | ||||
| 	  at shell prompt will list file named 0xff (single char name | ||||
| 	  with char value 255), not file named '?'. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_NON_POSIX_CP | ||||
| 	bool "Non-POSIX, but safer, copying to special nodes" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_NON_POSIX_CP | ||||
| @@ -215,6 +364,19 @@ config BUSYBOX_CONFIG_FEATURE_VERBOSE_CP_MESSAGE | ||||
| 	    cp: cannot stat '/vmlinuz/file': Not a directory | ||||
| 	  This will cost you ~60 bytes. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_USE_SENDFILE | ||||
| 	bool "Use sendfile system call" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_USE_SENDFILE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  When enabled, busybox will use the kernel sendfile() function | ||||
| 	  instead of read/write loops to copy data between file descriptors | ||||
| 	  (for example, cp command does this a lot). | ||||
| 	  If sendfile() doesn't work, copying code falls back to read/write | ||||
| 	  loop. sendfile() was originally implemented for faster I/O | ||||
| 	  from files to sockets, but since Linux 2.6.33 it was extended | ||||
| 	  to work for many more file types. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_COPYBUF_KB | ||||
| 	int "Copy buffer size, in kilobytes" | ||||
| 	range 1 1024 | ||||
|   | ||||
| @@ -1,20 +1,11 @@ | ||||
| # DO NOT EDIT. This file is generated from Config.src | ||||
| menu "Mail Utilities" | ||||
|  | ||||
|  | ||||
| config BUSYBOX_CONFIG_MAKEMIME | ||||
| 	bool "makemime" | ||||
| 	default BUSYBOX_DEFAULT_MAKEMIME | ||||
| 	help | ||||
| 	  Create MIME-formatted messages. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_MIME_CHARSET | ||||
| 	string "Default charset" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET | ||||
| 	depends on BUSYBOX_CONFIG_MAKEMIME || BUSYBOX_CONFIG_REFORMIME || BUSYBOX_CONFIG_SENDMAIL | ||||
| 	help | ||||
| 	  Default charset of the message. | ||||
|  | ||||
| config BUSYBOX_CONFIG_POPMAILDIR | ||||
| 	bool "popmaildir" | ||||
| 	default BUSYBOX_DEFAULT_POPMAILDIR | ||||
| @@ -31,7 +22,6 @@ config BUSYBOX_CONFIG_FEATURE_POPMAILDIR_DELIVERY | ||||
| 	  of the message before actual delivery (-F "prog [args...]"). | ||||
| 	  Allow to use a custom program for message actual delivery | ||||
| 	  (-M "prog [args...]"). | ||||
|  | ||||
| config BUSYBOX_CONFIG_REFORMIME | ||||
| 	bool "reformime" | ||||
| 	default BUSYBOX_DEFAULT_REFORMIME | ||||
| @@ -45,11 +35,17 @@ config BUSYBOX_CONFIG_FEATURE_REFORMIME_COMPAT | ||||
| 	help | ||||
| 	  Accept (for compatibility only) and ignore options | ||||
| 	  other than -x and -X. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SENDMAIL | ||||
| 	bool "sendmail" | ||||
| 	default BUSYBOX_DEFAULT_SENDMAIL | ||||
| 	help | ||||
| 	  Barebones sendmail. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_MIME_CHARSET | ||||
| 	string "Default charset" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_MIME_CHARSET | ||||
| 	depends on BUSYBOX_CONFIG_MAKEMIME || BUSYBOX_CONFIG_REFORMIME || BUSYBOX_CONFIG_SENDMAIL | ||||
| 	help | ||||
| 	  Default charset of the message. | ||||
|  | ||||
| endmenu | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -6,13 +6,6 @@ | ||||
|  | ||||
| menu "Linux Module Utilities" | ||||
|  | ||||
| config BUSYBOX_CONFIG_MODINFO | ||||
| 	bool "modinfo" | ||||
| 	default BUSYBOX_DEFAULT_MODINFO | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Show information about a Linux Kernel module | ||||
|  | ||||
| config BUSYBOX_CONFIG_MODPROBE_SMALL | ||||
| 	bool "Simplified modutils" | ||||
| 	default BUSYBOX_DEFAULT_MODPROBE_SMALL | ||||
| @@ -44,6 +37,42 @@ config BUSYBOX_CONFIG_MODPROBE_SMALL | ||||
| 	  - rmmod is an alias to modprobe -r | ||||
| 	  - depmod generates modules.dep.bb | ||||
|  | ||||
| config BUSYBOX_CONFIG_DEPMOD | ||||
| 	bool "depmod" | ||||
| 	default BUSYBOX_DEFAULT_DEPMOD | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  depmod generates modules.dep (and potentially modules.alias | ||||
| 	  and modules.symbols) that contain dependency information | ||||
| 	  for modprobe. | ||||
| config BUSYBOX_CONFIG_INSMOD | ||||
| 	bool "insmod" | ||||
| 	default BUSYBOX_DEFAULT_INSMOD | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  insmod is used to load specified modules in the running kernel. | ||||
| config BUSYBOX_CONFIG_LSMOD | ||||
| 	bool "lsmod" | ||||
| 	default BUSYBOX_DEFAULT_LSMOD | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  lsmod is used to display a list of loaded modules. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT | ||||
| 	bool "Pretty output" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT | ||||
| 	depends on BUSYBOX_CONFIG_LSMOD && !BUSYBOX_CONFIG_MODPROBE_SMALL | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This option makes output format of lsmod adjusted to | ||||
| 	  the format of module-init-tools for Linux kernel 2.6. | ||||
| 	  Increases size somewhat. | ||||
| config BUSYBOX_CONFIG_MODINFO | ||||
| 	bool "modinfo" | ||||
| 	default BUSYBOX_DEFAULT_MODINFO | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Show information about a Linux Kernel module | ||||
| config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE | ||||
| 	bool "Accept module options on modprobe command line" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE | ||||
| @@ -58,45 +87,9 @@ config BUSYBOX_CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED | ||||
| 	depends on BUSYBOX_CONFIG_MODPROBE_SMALL | ||||
| 	help | ||||
| 	  Check if the module is already loaded. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INSMOD | ||||
| 	bool "insmod" | ||||
| 	default BUSYBOX_DEFAULT_INSMOD | ||||
| 	depends on !BUSYBOX_CONFIG_MODPROBE_SMALL | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  insmod is used to load specified modules in the running kernel. | ||||
|  | ||||
| config BUSYBOX_CONFIG_RMMOD | ||||
| 	bool "rmmod" | ||||
| 	default BUSYBOX_DEFAULT_RMMOD | ||||
| 	depends on !BUSYBOX_CONFIG_MODPROBE_SMALL | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  rmmod is used to unload specified modules from the kernel. | ||||
|  | ||||
| config BUSYBOX_CONFIG_LSMOD | ||||
| 	bool "lsmod" | ||||
| 	default BUSYBOX_DEFAULT_LSMOD | ||||
| 	depends on !BUSYBOX_CONFIG_MODPROBE_SMALL | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  lsmod is used to display a list of loaded modules. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT | ||||
| 	bool "Pretty output" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_LSMOD_PRETTY_2_6_OUTPUT | ||||
| 	depends on BUSYBOX_CONFIG_LSMOD | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  This option makes output format of lsmod adjusted to | ||||
| 	  the format of module-init-tools for Linux kernel 2.6. | ||||
| 	  Increases size somewhat. | ||||
|  | ||||
| config BUSYBOX_CONFIG_MODPROBE | ||||
| 	bool "modprobe" | ||||
| 	default BUSYBOX_DEFAULT_MODPROBE | ||||
| 	depends on !BUSYBOX_CONFIG_MODPROBE_SMALL | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Handle the loading of modules, and their dependencies on a high | ||||
| @@ -105,7 +98,7 @@ config BUSYBOX_CONFIG_MODPROBE | ||||
| config BUSYBOX_CONFIG_FEATURE_MODPROBE_BLACKLIST | ||||
| 	bool "Blacklist support" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_MODPROBE_BLACKLIST | ||||
| 	depends on BUSYBOX_CONFIG_MODPROBE | ||||
| 	depends on BUSYBOX_CONFIG_MODPROBE && !BUSYBOX_CONFIG_MODPROBE_SMALL | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Say 'y' here to enable support for the 'blacklist' command in | ||||
| @@ -113,16 +106,12 @@ config BUSYBOX_CONFIG_FEATURE_MODPROBE_BLACKLIST | ||||
| 	  blacklisted modules. This is useful if you want to prevent your | ||||
| 	  hardware autodetection scripts to load modules like evdev, frame | ||||
| 	  buffer drivers etc. | ||||
|  | ||||
| config BUSYBOX_CONFIG_DEPMOD | ||||
| 	bool "depmod" | ||||
| 	default BUSYBOX_DEFAULT_DEPMOD | ||||
| 	depends on !BUSYBOX_CONFIG_MODPROBE_SMALL | ||||
| config BUSYBOX_CONFIG_RMMOD | ||||
| 	bool "rmmod" | ||||
| 	default BUSYBOX_DEFAULT_RMMOD | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  depmod generates modules.dep (and potentially modules.alias | ||||
| 	  and modules.symbols) that contain dependency information | ||||
| 	  for modprobe. | ||||
| 	  rmmod is used to unload specified modules from the kernel. | ||||
|  | ||||
| comment "Options common to multiple modutils" | ||||
|  | ||||
|   | ||||
| @@ -6,183 +6,6 @@ | ||||
|  | ||||
| menu "Networking Utilities" | ||||
|  | ||||
| config BUSYBOX_CONFIG_NAMEIF | ||||
| 	bool "nameif" | ||||
| 	default BUSYBOX_DEFAULT_NAMEIF | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	select BUSYBOX_CONFIG_FEATURE_SYSLOG | ||||
| 	help | ||||
| 	  nameif is used to rename network interface by its MAC address. | ||||
| 	  Renamed interfaces MUST be in the down state. | ||||
| 	  It is possible to use a file (default: /etc/mactab) | ||||
| 	  with list of new interface names and MACs. | ||||
| 	  Maximum interface name length: IFNAMSIZ = 16 | ||||
| 	  File fields are separated by space or tab. | ||||
| 	  File format: | ||||
| 	  # Comment | ||||
| 	  new_interface_name    XX:XX:XX:XX:XX:XX | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_NAMEIF_EXTENDED | ||||
| 	bool "Extended nameif" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_NAMEIF_EXTENDED | ||||
| 	depends on BUSYBOX_CONFIG_NAMEIF | ||||
| 	help | ||||
| 	  This extends the nameif syntax to support the bus_info, driver, | ||||
| 	  phyaddr selectors. The syntax is compatible to the normal nameif. | ||||
| 	  File format: | ||||
| 	    new_interface_name  driver=asix bus=usb-0000:00:08.2-3 | ||||
| 	    new_interface_name  bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5 | ||||
| 	    new_interface_name  phy_address=2 00:80:C8:38:91:B5 | ||||
| 	    new_interface_name  mac=00:80:C8:38:91:B5 | ||||
| 	    new_interface_name  00:80:C8:38:91:B5 | ||||
| config BUSYBOX_CONFIG_NBDCLIENT | ||||
| 	bool "nbd-client" | ||||
| 	default BUSYBOX_DEFAULT_NBDCLIENT | ||||
| 	help | ||||
| 	  Network block device client | ||||
| config BUSYBOX_CONFIG_NC | ||||
| 	bool "nc" | ||||
| 	default BUSYBOX_DEFAULT_NC | ||||
| 	help | ||||
| 	  A simple Unix utility which reads and writes data across network | ||||
| 	  connections. | ||||
|  | ||||
| config BUSYBOX_CONFIG_NC_SERVER | ||||
| 	bool "Netcat server options (-l)" | ||||
| 	default BUSYBOX_DEFAULT_NC_SERVER | ||||
| 	depends on BUSYBOX_CONFIG_NC | ||||
| 	help | ||||
| 	  Allow netcat to act as a server. | ||||
|  | ||||
| config BUSYBOX_CONFIG_NC_EXTRA | ||||
| 	bool "Netcat extensions (-eiw and -f FILE)" | ||||
| 	default BUSYBOX_DEFAULT_NC_EXTRA | ||||
| 	depends on BUSYBOX_CONFIG_NC | ||||
| 	help | ||||
| 	  Add -e (support for executing the rest of the command line after | ||||
| 	  making or receiving a successful connection), -i (delay interval for | ||||
| 	  lines sent), -w (timeout for initial connection). | ||||
|  | ||||
| config BUSYBOX_CONFIG_NC_110_COMPAT | ||||
| 	bool "Netcat 1.10 compatibility (+2.5k)" | ||||
| 	default BUSYBOX_DEFAULT_NC_110_COMPAT  # off specially for Rob | ||||
| 	depends on BUSYBOX_CONFIG_NC | ||||
| 	help | ||||
| 	  This option makes nc closely follow original nc-1.10. | ||||
| 	  The code is about 2.5k bigger. It enables | ||||
| 	  -s ADDR, -n, -u, -v, -o FILE, -z options, but loses | ||||
| 	  busybox-specific extensions: -f FILE. | ||||
| config BUSYBOX_CONFIG_PING | ||||
| 	bool "ping" | ||||
| 	default BUSYBOX_DEFAULT_PING | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to | ||||
| 	  elicit an ICMP ECHO_RESPONSE from a host or gateway. | ||||
|  | ||||
| config BUSYBOX_CONFIG_PING6 | ||||
| 	bool "ping6" | ||||
| 	default BUSYBOX_DEFAULT_PING6 | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IPV6 && BUSYBOX_CONFIG_PING | ||||
| 	help | ||||
| 	  This will give you a ping that can talk IPv6. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_FANCY_PING | ||||
| 	bool "Enable fancy ping output" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_FANCY_PING | ||||
| 	depends on BUSYBOX_CONFIG_PING | ||||
| 	help | ||||
| 	  Make the output from the ping applet include statistics, and at the | ||||
| 	  same time provide full support for ICMP packets. | ||||
| config BUSYBOX_CONFIG_WGET | ||||
| 	bool "wget" | ||||
| 	default BUSYBOX_DEFAULT_WGET | ||||
| 	help | ||||
| 	  wget is a utility for non-interactive download of files from HTTP | ||||
| 	  and FTP servers. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_STATUSBAR | ||||
| 	bool "Enable a nifty process meter (+2k)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR | ||||
| 	depends on BUSYBOX_CONFIG_WGET | ||||
| 	help | ||||
| 	  Enable the transfer progress bar for wget transfers. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_AUTHENTICATION | ||||
| 	bool "Enable HTTP authentication" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION | ||||
| 	depends on BUSYBOX_CONFIG_WGET | ||||
| 	help | ||||
| 	  Support authenticated HTTP transfers. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_LONG_OPTIONS | ||||
| 	bool "Enable long options" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS | ||||
| 	depends on BUSYBOX_CONFIG_WGET && BUSYBOX_CONFIG_LONG_OPTS | ||||
| 	help | ||||
| 	  Support long options for the wget applet. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT | ||||
| 	bool "Enable timeout option -T SEC" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT | ||||
| 	depends on BUSYBOX_CONFIG_WGET | ||||
| 	help | ||||
| 	  Supports network read and connect timeouts for wget, | ||||
| 	  so that wget will give up and timeout, through the -T | ||||
| 	  command line option. | ||||
|  | ||||
| 	  Currently only connect and network data read timeout are | ||||
| 	  supported (i.e., timeout is not applied to the DNS query). When | ||||
| 	  FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option | ||||
| 	  will work in addition to -T. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_OPENSSL | ||||
| 	bool "Try to connect to HTTPS using openssl" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL | ||||
| 	depends on BUSYBOX_CONFIG_WGET | ||||
| 	help | ||||
| 	  Choose how wget establishes SSL connection for https:// URLs. | ||||
|  | ||||
| 	  Busybox itself contains no SSL code. wget will spawn | ||||
| 	  a helper program to talk over HTTPS. | ||||
|  | ||||
| 	  OpenSSL has a simple SSL client for debug purposes. | ||||
| 	  If you select "openssl" helper, wget will effectively call | ||||
| 	  "openssl s_client -quiet -connect IP:443 2>/dev/null" | ||||
| 	  and pipe its data through it. | ||||
| 	  Note inconvenient API: host resolution is done twice, | ||||
| 	  and there is no guarantee openssl's idea of IPv6 address | ||||
| 	  format is the same as ours. | ||||
| 	  Another problem is that s_client prints debug information | ||||
| 	  to stderr, and it needs to be suppressed. This means | ||||
| 	  all error messages get suppressed too. | ||||
| 	  openssl is also a big binary, often dynamically linked | ||||
| 	  against ~15 libraries. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_SSL_HELPER | ||||
| 	bool "Try to connect to HTTPS using ssl_helper" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_SSL_HELPER | ||||
| 	depends on BUSYBOX_CONFIG_WGET | ||||
| 	help | ||||
| 	  Choose how wget establishes SSL connection for https:// URLs. | ||||
|  | ||||
| 	  Busybox itself contains no SSL code. wget will spawn | ||||
| 	  a helper program to talk over HTTPS. | ||||
|  | ||||
| 	  ssl_helper is a tool which can be built statically | ||||
| 	  from busybox sources against a small embedded SSL library. | ||||
| 	  Please see networking/ssl_helper/README. | ||||
| 	  It does not require double host resolution and emits | ||||
| 	  error messages to stderr. | ||||
|  | ||||
| 	  Precompiled static binary may be available at | ||||
| 	  http://busybox.net/downloads/binaries/ | ||||
| config BUSYBOX_CONFIG_WHOIS | ||||
| 	bool "whois" | ||||
| 	default BUSYBOX_DEFAULT_WHOIS | ||||
| 	help | ||||
| 	  whois is a client for the whois directory service | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IPV6 | ||||
| 	bool "Enable IPv6 support" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IPV6 | ||||
| @@ -230,7 +53,6 @@ config BUSYBOX_CONFIG_ARP | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Manipulate the system ARP cache. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ARPING | ||||
| 	bool "arping" | ||||
| 	default BUSYBOX_DEFAULT_ARPING | ||||
| @@ -264,37 +86,26 @@ config BUSYBOX_CONFIG_FEATURE_BRCTL_SHOW | ||||
| 	help | ||||
| 	  Add support for option which prints the current config: | ||||
| 	    show | ||||
|  | ||||
| config BUSYBOX_CONFIG_DNSD | ||||
| 	bool "dnsd" | ||||
| 	default BUSYBOX_DEFAULT_DNSD | ||||
| 	help | ||||
| 	  Small and static DNS server daemon. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ETHER_WAKE | ||||
| 	bool "ether-wake" | ||||
| 	default BUSYBOX_DEFAULT_ETHER_WAKE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Send a magic packet to wake up sleeping machines. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FAKEIDENTD | ||||
| 	bool "fakeidentd" | ||||
| 	default BUSYBOX_DEFAULT_FAKEIDENTD | ||||
| 	select BUSYBOX_CONFIG_FEATURE_SYSLOG | ||||
| 	help | ||||
| 	  fakeidentd listens on the ident port and returns a predefined | ||||
| 	  fake value on any query. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FTPD | ||||
| 	bool "ftpd" | ||||
| 	default BUSYBOX_DEFAULT_FTPD | ||||
| 	help | ||||
| 	  simple FTP daemon. You have to run it via inetd. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_FTP_WRITE | ||||
| config BUSYBOX_CONFIG_FEATURE_FTPD_WRITE | ||||
| 	bool "Enable upload commands" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_FTP_WRITE | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_FTPD_WRITE | ||||
| 	depends on BUSYBOX_CONFIG_FTPD | ||||
| 	help | ||||
| 	  Enable all kinds of FTP upload commands (-w option) | ||||
| @@ -310,13 +121,12 @@ config BUSYBOX_CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST | ||||
| 	  it increases the code size by ~40 bytes. | ||||
| 	  Most other ftp servers seem to behave similar to this. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_FTP_AUTHENTICATION | ||||
| config BUSYBOX_CONFIG_FEATURE_FTPD_AUTHENTICATION | ||||
| 	bool "Enable authentication" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_FTP_AUTHENTICATION | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_FTPD_AUTHENTICATION | ||||
| 	depends on BUSYBOX_CONFIG_FTPD | ||||
| 	help | ||||
| 	  Enable basic system login as seen in telnet etc. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FTPGET | ||||
| 	bool "ftpget" | ||||
| 	default BUSYBOX_DEFAULT_FTPGET | ||||
| @@ -335,13 +145,17 @@ config BUSYBOX_CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS | ||||
| 	depends on BUSYBOX_CONFIG_LONG_OPTS && (BUSYBOX_CONFIG_FTPGET || BUSYBOX_CONFIG_FTPPUT) | ||||
| 	help | ||||
| 	  Support long options for the ftpget/ftpput applet. | ||||
|  | ||||
| config BUSYBOX_CONFIG_HOSTNAME | ||||
| 	bool "hostname" | ||||
| 	default BUSYBOX_DEFAULT_HOSTNAME | ||||
| 	help | ||||
| 	  Show or set the system's host name. | ||||
|  | ||||
| config BUSYBOX_CONFIG_DNSDOMAINNAME | ||||
| 	bool "dnsdomainname" | ||||
| 	default BUSYBOX_DEFAULT_DNSDOMAINNAME | ||||
| 	help | ||||
| 	  Alias to "hostname -d". | ||||
| config BUSYBOX_CONFIG_HTTPD | ||||
| 	bool "httpd" | ||||
| 	default BUSYBOX_DEFAULT_HTTPD | ||||
| @@ -460,7 +274,6 @@ config BUSYBOX_CONFIG_FEATURE_HTTPD_GZIP | ||||
| 	help | ||||
| 	  Makes httpd send files using GZIP content encoding if the | ||||
| 	  client supports it and a pre-compressed <file>.gz exists. | ||||
|  | ||||
| config BUSYBOX_CONFIG_IFCONFIG | ||||
| 	bool "ifconfig" | ||||
| 	default BUSYBOX_DEFAULT_IFCONFIG | ||||
| @@ -508,7 +321,6 @@ config BUSYBOX_CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS | ||||
| 	help | ||||
| 	  Setting this will make ifconfig attempt to find the broadcast | ||||
| 	  automatically if the value '+' is used. | ||||
|  | ||||
| config BUSYBOX_CONFIG_IFENSLAVE | ||||
| 	bool "ifenslave" | ||||
| 	default BUSYBOX_DEFAULT_IFENSLAVE | ||||
| @@ -516,20 +328,18 @@ config BUSYBOX_CONFIG_IFENSLAVE | ||||
| 	help | ||||
| 	  Userspace application to bind several interfaces | ||||
| 	  to a logical interface (use with kernel bonding driver). | ||||
|  | ||||
| config BUSYBOX_CONFIG_IFPLUGD | ||||
| 	bool "ifplugd" | ||||
| 	default BUSYBOX_DEFAULT_IFPLUGD | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Network interface plug detection daemon. | ||||
|  | ||||
| config BUSYBOX_CONFIG_IFUPDOWN | ||||
| 	bool "ifupdown" | ||||
| 	default BUSYBOX_DEFAULT_IFUPDOWN | ||||
| config BUSYBOX_CONFIG_IFUP | ||||
| 	bool "ifup" | ||||
| 	default BUSYBOX_DEFAULT_IFUP | ||||
| 	help | ||||
| 	  Activate or deactivate the specified interfaces. This applet makes | ||||
| 	  use of either "ifconfig" and "route" or the "ip" command to actually | ||||
| 	  Activate the specified interfaces. This applet makes use | ||||
| 	  of either "ifconfig" and "route" or the "ip" command to actually | ||||
| 	  configure network interfaces. Therefore, you will probably also want | ||||
| 	  to enable either IFCONFIG and ROUTE, or enable | ||||
| 	  FEATURE_IFUPDOWN_IP and the various IP options. Of | ||||
| @@ -540,10 +350,16 @@ config BUSYBOX_CONFIG_IFUPDOWN | ||||
| 	  "ifconfig", "route" and "run-parts" or the "ip" command, either | ||||
| 	  via busybox or via standalone utilities. | ||||
|  | ||||
| config BUSYBOX_CONFIG_IFDOWN | ||||
| 	bool "ifdown" | ||||
| 	default BUSYBOX_DEFAULT_IFDOWN | ||||
| 	help | ||||
| 	  Deactivate the specified interfaces. | ||||
|  | ||||
| config BUSYBOX_CONFIG_IFUPDOWN_IFSTATE_PATH | ||||
| 	string "Absolute path to ifstate file" | ||||
| 	default BUSYBOX_DEFAULT_IFUPDOWN_IFSTATE_PATH | ||||
| 	depends on BUSYBOX_CONFIG_IFUPDOWN | ||||
| 	depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN | ||||
| 	help | ||||
| 	  ifupdown keeps state information in a file called ifstate. | ||||
| 	  Typically it is located in /var/run/ifstate, however | ||||
| @@ -552,69 +368,39 @@ config BUSYBOX_CONFIG_IFUPDOWN_IFSTATE_PATH | ||||
| 	  This config option defines location of ifstate. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP | ||||
| 	bool "Use ip applet" | ||||
| 	bool "Use ip tool (else ifconfig/route is used)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IP | ||||
| 	depends on BUSYBOX_CONFIG_IFUPDOWN | ||||
| 	depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN | ||||
| 	help | ||||
| 	  Use the iproute "ip" command to implement "ifup" and "ifdown", rather | ||||
| 	  than the default of using the older 'ifconfig' and 'route' utilities. | ||||
| 	  than the default of using the older "ifconfig" and "route" utilities. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN | ||||
| 	bool "Use busybox ip applet" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IP_BUILTIN | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	select BUSYBOX_CONFIG_IP | ||||
| 	select BUSYBOX_CONFIG_FEATURE_IP_ADDRESS | ||||
| 	select BUSYBOX_CONFIG_FEATURE_IP_LINK | ||||
| 	select BUSYBOX_CONFIG_FEATURE_IP_ROUTE | ||||
| 	help | ||||
| 	  Use the busybox iproute "ip" applet to implement "ifupdown". | ||||
| 	  If Y: you must install either the full-blown iproute2 package | ||||
| 	  or enable "ip" applet in Busybox, or the "ifup" and "ifdown" applets | ||||
| 	  will not work. | ||||
|  | ||||
| 	  If left disabled, you must install the full-blown iproute2 | ||||
| 	  utility or the  "ifup" and "ifdown" applets will not work. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN | ||||
| 	bool "Use busybox ifconfig and route applets" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN | ||||
| 	depends on BUSYBOX_CONFIG_IFUPDOWN && !BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP | ||||
| 	select BUSYBOX_CONFIG_IFCONFIG | ||||
| 	select BUSYBOX_CONFIG_ROUTE | ||||
| 	help | ||||
| 	  Use the busybox iproute "ifconfig" and "route" applets to | ||||
| 	  implement the "ifup" and "ifdown" utilities. | ||||
|  | ||||
| 	  If left disabled, you must install the full-blown ifconfig | ||||
| 	  and route utilities, or the  "ifup" and "ifdown" applets will not | ||||
| 	  work. | ||||
| 	  If N: you must install either the full-blown ifconfig and route | ||||
| 	  utilities, or enable these applets in Busybox. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IPV4 | ||||
| 	bool "Support for IPv4" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IPV4 | ||||
| 	depends on BUSYBOX_CONFIG_IFUPDOWN | ||||
| 	depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN | ||||
| 	help | ||||
| 	  If you want ifup/ifdown to talk IPv4, leave this on. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IPV6 | ||||
| 	bool "Support for IPv6" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_IPV6 | ||||
| 	depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_FEATURE_IPV6 | ||||
| 	depends on (BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN) && BUSYBOX_CONFIG_FEATURE_IPV6 | ||||
| 	help | ||||
| 	  If you need support for IPv6, turn this option on. | ||||
|  | ||||
| ### UNUSED | ||||
| ###config FEATURE_IFUPDOWN_IPX | ||||
| ###	bool "Support for IPX" | ||||
| ###	default y | ||||
| ###	depends on IFUPDOWN | ||||
| ###	help | ||||
| ###	  If this option is selected you can use busybox to work with IPX | ||||
| ###	  networks. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_MAPPING | ||||
| 	bool "Enable mapping support" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_MAPPING | ||||
| 	depends on BUSYBOX_CONFIG_IFUPDOWN | ||||
| 	depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN | ||||
| 	help | ||||
| 	  This enables support for the "mapping" stanza, unless you have | ||||
| 	  a weird network setup you don't need it. | ||||
| @@ -622,13 +408,12 @@ config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_MAPPING | ||||
| config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP | ||||
| 	bool "Support for external dhcp clients" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IFUPDOWN_EXTERNAL_DHCP | ||||
| 	depends on BUSYBOX_CONFIG_IFUPDOWN | ||||
| 	depends on BUSYBOX_CONFIG_IFUP || BUSYBOX_CONFIG_IFDOWN | ||||
| 	help | ||||
| 	  This enables support for the external dhcp clients. Clients are | ||||
| 	  tried in the following order: dhcpcd, dhclient, pump and udhcpc. | ||||
| 	  Otherwise, if udhcpc applet is enabled, it is used. | ||||
| 	  Otherwise, ifup/ifdown will have no support for DHCP. | ||||
|  | ||||
| config BUSYBOX_CONFIG_INETD | ||||
| 	bool "inetd" | ||||
| 	default BUSYBOX_DEFAULT_INETD | ||||
| @@ -678,7 +463,6 @@ config BUSYBOX_CONFIG_FEATURE_INETD_RPC | ||||
| 	select BUSYBOX_CONFIG_FEATURE_HAVE_RPC | ||||
| 	help | ||||
| 	  Support Sun-RPC based services | ||||
|  | ||||
| config BUSYBOX_CONFIG_IP | ||||
| 	bool "ip" | ||||
| 	default BUSYBOX_DEFAULT_IP | ||||
| @@ -688,24 +472,72 @@ config BUSYBOX_CONFIG_IP | ||||
| 	  utility. You generally don't need "ip" to use busybox with | ||||
| 	  TCP/IP. | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPADDR | ||||
| 	bool "ipaddr" | ||||
| 	default BUSYBOX_DEFAULT_IPADDR | ||||
| 	select BUSYBOX_CONFIG_FEATURE_IP_ADDRESS | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Support short form of ip addr: ipaddr | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPLINK | ||||
| 	bool "iplink" | ||||
| 	default BUSYBOX_DEFAULT_IPLINK | ||||
| 	select BUSYBOX_CONFIG_FEATURE_IP_LINK | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Support short form of ip link: iplink | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPROUTE | ||||
| 	bool "iproute" | ||||
| 	default BUSYBOX_DEFAULT_IPROUTE | ||||
| 	select BUSYBOX_CONFIG_FEATURE_IP_ROUTE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Support short form of ip route: iproute | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPTUNNEL | ||||
| 	bool "iptunnel" | ||||
| 	default BUSYBOX_DEFAULT_IPTUNNEL | ||||
| 	select BUSYBOX_CONFIG_FEATURE_IP_TUNNEL | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Support short form of ip tunnel: iptunnel | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPRULE | ||||
| 	bool "iprule" | ||||
| 	default BUSYBOX_DEFAULT_IPRULE | ||||
| 	select BUSYBOX_CONFIG_FEATURE_IP_RULE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Support short form of ip rule: iprule | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPNEIGH | ||||
| 	bool "ipneigh" | ||||
| 	default BUSYBOX_DEFAULT_IPNEIGH | ||||
| 	select BUSYBOX_CONFIG_FEATURE_IP_NEIGH | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Support short form of ip neigh: ipneigh | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IP_ADDRESS | ||||
| 	bool "ip address" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IP_ADDRESS | ||||
| 	depends on BUSYBOX_CONFIG_IP | ||||
| 	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPADDR | ||||
| 	help | ||||
| 	  Address manipulation support for the "ip" applet. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IP_LINK | ||||
| 	bool "ip link" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IP_LINK | ||||
| 	depends on BUSYBOX_CONFIG_IP | ||||
| 	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPLINK | ||||
| 	help | ||||
| 	  Configure network devices with "ip". | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IP_ROUTE | ||||
| 	bool "ip route" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IP_ROUTE | ||||
| 	depends on BUSYBOX_CONFIG_IP | ||||
| 	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPROUTE | ||||
| 	help | ||||
| 	  Add support for routing table management to "ip". | ||||
|  | ||||
| @@ -719,80 +551,33 @@ config BUSYBOX_CONFIG_FEATURE_IP_ROUTE_DIR | ||||
| config BUSYBOX_CONFIG_FEATURE_IP_TUNNEL | ||||
| 	bool "ip tunnel" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IP_TUNNEL | ||||
| 	depends on BUSYBOX_CONFIG_IP | ||||
| 	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPTUNNEL | ||||
| 	help | ||||
| 	  Add support for tunneling commands to "ip". | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IP_RULE | ||||
| 	bool "ip rule" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IP_RULE | ||||
| 	depends on BUSYBOX_CONFIG_IP | ||||
| 	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPRULE | ||||
| 	help | ||||
| 	  Add support for rule commands to "ip". | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IP_NEIGH | ||||
| 	bool "ip neighbor" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IP_NEIGH | ||||
| 	depends on BUSYBOX_CONFIG_IP | ||||
| 	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPNEIGH | ||||
| 	help | ||||
| 	  Add support for neighbor commands to "ip". | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS | ||||
| 	bool "Support short forms of ip commands" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IP_SHORT_FORMS | ||||
| 	depends on BUSYBOX_CONFIG_IP | ||||
| 	help | ||||
| 	  Also support short-form of ip <OBJECT> commands: | ||||
| 	  ip addr   -> ipaddr | ||||
| 	  ip link   -> iplink | ||||
| 	  ip route  -> iproute | ||||
| 	  ip tunnel -> iptunnel | ||||
| 	  ip rule   -> iprule | ||||
| 	  ip neigh  -> ipneigh | ||||
|  | ||||
| 	  Say N unless you desparately need the short form of the ip | ||||
| 	  object commands. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_IP_RARE_PROTOCOLS | ||||
| 	bool "Support displaying rarely used link types" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_IP_RARE_PROTOCOLS | ||||
| 	depends on BUSYBOX_CONFIG_IP | ||||
| 	depends on BUSYBOX_CONFIG_IP || BUSYBOX_CONFIG_IPADDR || BUSYBOX_CONFIG_IPLINK || BUSYBOX_CONFIG_IPROUTE || BUSYBOX_CONFIG_IPTUNNEL || BUSYBOX_CONFIG_IPRULE || BUSYBOX_CONFIG_IPNEIGH | ||||
| 	help | ||||
| 	  If you are not going to use links of type "frad", "econet", | ||||
| 	  "bif" etc, you probably don't need to enable this. | ||||
| 	  Ethernet, wireless, infrared, ppp/slip, ip tunnelling | ||||
| 	  link types are supported without this option selected. | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPADDR | ||||
| 	bool | ||||
| 	default BUSYBOX_DEFAULT_IPADDR | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_ADDRESS | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPLINK | ||||
| 	bool | ||||
| 	default BUSYBOX_DEFAULT_IPLINK | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_LINK | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPROUTE | ||||
| 	bool | ||||
| 	default BUSYBOX_DEFAULT_IPROUTE | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_ROUTE | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPTUNNEL | ||||
| 	bool | ||||
| 	default BUSYBOX_DEFAULT_IPTUNNEL | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_TUNNEL | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPRULE | ||||
| 	bool | ||||
| 	default BUSYBOX_DEFAULT_IPRULE | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_RULE | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPNEIGH | ||||
| 	bool | ||||
| 	default BUSYBOX_DEFAULT_IPNEIGH | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS && BUSYBOX_CONFIG_FEATURE_IP_NEIGH | ||||
|  | ||||
| config BUSYBOX_CONFIG_IPCALC | ||||
| 	bool "ipcalc" | ||||
| 	default BUSYBOX_DEFAULT_IPCALC | ||||
| @@ -814,13 +599,84 @@ config BUSYBOX_CONFIG_FEATURE_IPCALC_LONG_OPTIONS | ||||
| 	depends on BUSYBOX_CONFIG_IPCALC && BUSYBOX_CONFIG_LONG_OPTS | ||||
| 	help | ||||
| 	  Support long options for the ipcalc applet. | ||||
| config BUSYBOX_CONFIG_FAKEIDENTD | ||||
| 	bool "fakeidentd" | ||||
| 	default BUSYBOX_DEFAULT_FAKEIDENTD | ||||
| 	select BUSYBOX_CONFIG_FEATURE_SYSLOG | ||||
| 	help | ||||
| 	  fakeidentd listens on the ident port and returns a predefined | ||||
| 	  fake value on any query. | ||||
| config BUSYBOX_CONFIG_NAMEIF | ||||
| 	bool "nameif" | ||||
| 	default BUSYBOX_DEFAULT_NAMEIF | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	select BUSYBOX_CONFIG_FEATURE_SYSLOG | ||||
| 	help | ||||
| 	  nameif is used to rename network interface by its MAC address. | ||||
| 	  Renamed interfaces MUST be in the down state. | ||||
| 	  It is possible to use a file (default: /etc/mactab) | ||||
| 	  with list of new interface names and MACs. | ||||
| 	  Maximum interface name length: IFNAMSIZ = 16 | ||||
| 	  File fields are separated by space or tab. | ||||
| 	  File format: | ||||
| 	  # Comment | ||||
| 	  new_interface_name    XX:XX:XX:XX:XX:XX | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_NAMEIF_EXTENDED | ||||
| 	bool "Extended nameif" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_NAMEIF_EXTENDED | ||||
| 	depends on BUSYBOX_CONFIG_NAMEIF | ||||
| 	help | ||||
| 	  This extends the nameif syntax to support the bus_info, driver, | ||||
| 	  phyaddr selectors. The syntax is compatible to the normal nameif. | ||||
| 	  File format: | ||||
| 	    new_interface_name  driver=asix bus=usb-0000:00:08.2-3 | ||||
| 	    new_interface_name  bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5 | ||||
| 	    new_interface_name  phy_address=2 00:80:C8:38:91:B5 | ||||
| 	    new_interface_name  mac=00:80:C8:38:91:B5 | ||||
| 	    new_interface_name  00:80:C8:38:91:B5 | ||||
| config BUSYBOX_CONFIG_NBDCLIENT | ||||
| 	bool "nbd-client" | ||||
| 	default BUSYBOX_DEFAULT_NBDCLIENT | ||||
| 	help | ||||
| 	  Network block device client | ||||
| config BUSYBOX_CONFIG_NC | ||||
| 	bool "nc" | ||||
| 	default BUSYBOX_DEFAULT_NC | ||||
| 	help | ||||
| 	  A simple Unix utility which reads and writes data across network | ||||
| 	  connections. | ||||
|  | ||||
| config BUSYBOX_CONFIG_NC_SERVER | ||||
| 	bool "Netcat server options (-l)" | ||||
| 	default BUSYBOX_DEFAULT_NC_SERVER | ||||
| 	depends on BUSYBOX_CONFIG_NC | ||||
| 	help | ||||
| 	  Allow netcat to act as a server. | ||||
|  | ||||
| config BUSYBOX_CONFIG_NC_EXTRA | ||||
| 	bool "Netcat extensions (-eiw and -f FILE)" | ||||
| 	default BUSYBOX_DEFAULT_NC_EXTRA | ||||
| 	depends on BUSYBOX_CONFIG_NC | ||||
| 	help | ||||
| 	  Add -e (support for executing the rest of the command line after | ||||
| 	  making or receiving a successful connection), -i (delay interval for | ||||
| 	  lines sent), -w (timeout for initial connection). | ||||
|  | ||||
| config BUSYBOX_CONFIG_NC_110_COMPAT | ||||
| 	bool "Netcat 1.10 compatibility (+2.5k)" | ||||
| 	default BUSYBOX_DEFAULT_NC_110_COMPAT  # off specially for Rob | ||||
| 	depends on BUSYBOX_CONFIG_NC | ||||
| 	help | ||||
| 	  This option makes nc closely follow original nc-1.10. | ||||
| 	  The code is about 2.5k bigger. It enables | ||||
| 	  -s ADDR, -n, -u, -v, -o FILE, -z options, but loses | ||||
| 	  busybox-specific extensions: -f FILE. | ||||
| config BUSYBOX_CONFIG_NETMSG | ||||
| 	bool "netmsg" | ||||
| 	default BUSYBOX_DEFAULT_NETMSG | ||||
| 	help | ||||
| 	  simple program for sending udp broadcast messages | ||||
|  | ||||
| config BUSYBOX_CONFIG_NETSTAT | ||||
| 	bool "netstat" | ||||
| 	default BUSYBOX_DEFAULT_NETSTAT | ||||
| @@ -843,13 +699,11 @@ config BUSYBOX_CONFIG_FEATURE_NETSTAT_PRG | ||||
| 	help | ||||
| 	  Add support for -p flag to print out PID and program name. | ||||
| 	  +700 bytes of code. | ||||
|  | ||||
| config BUSYBOX_CONFIG_NSLOOKUP | ||||
| 	bool "nslookup" | ||||
| 	default BUSYBOX_DEFAULT_NSLOOKUP | ||||
| 	help | ||||
| 	  nslookup is a tool to query Internet name servers. | ||||
|  | ||||
| config BUSYBOX_CONFIG_NTPD | ||||
| 	bool "ntpd" | ||||
| 	default BUSYBOX_DEFAULT_NTPD | ||||
| @@ -872,20 +726,39 @@ config BUSYBOX_CONFIG_FEATURE_NTPD_CONF | ||||
| 	help | ||||
| 	  Make ntpd look in /etc/ntp.conf for peers. Only "server address" | ||||
| 	  is supported. | ||||
| config BUSYBOX_CONFIG_PING | ||||
| 	bool "ping" | ||||
| 	default BUSYBOX_DEFAULT_PING | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to | ||||
| 	  elicit an ICMP ECHO_RESPONSE from a host or gateway. | ||||
|  | ||||
| config BUSYBOX_CONFIG_PING6 | ||||
| 	bool "ping6" | ||||
| 	default BUSYBOX_DEFAULT_PING6 | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IPV6 | ||||
| 	help | ||||
| 	  This will give you a ping that can talk IPv6. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_FANCY_PING | ||||
| 	bool "Enable fancy ping output" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_FANCY_PING | ||||
| 	depends on BUSYBOX_CONFIG_PING || BUSYBOX_CONFIG_PING6 | ||||
| 	help | ||||
| 	  Make the output from the ping applet include statistics, and at the | ||||
| 	  same time provide full support for ICMP packets. | ||||
| config BUSYBOX_CONFIG_PSCAN | ||||
| 	bool "pscan" | ||||
| 	default BUSYBOX_DEFAULT_PSCAN | ||||
| 	help | ||||
| 	  Simple network port scanner. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ROUTE | ||||
| 	bool "route" | ||||
| 	default BUSYBOX_DEFAULT_ROUTE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Route displays or manipulates the kernel's IP routing tables. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SLATTACH | ||||
| 	bool "slattach" | ||||
| 	default BUSYBOX_DEFAULT_SLATTACH | ||||
| @@ -893,17 +766,6 @@ config BUSYBOX_CONFIG_SLATTACH | ||||
| 	help | ||||
| 	  slattach is a small utility to attach network interfaces to serial | ||||
| 	  lines. | ||||
|  | ||||
| #config TC | ||||
| #	bool "tc" | ||||
| #	default y | ||||
| #	help | ||||
| #	  show / manipulate traffic control settings | ||||
| # | ||||
| #config FEATURE_TC_INGRESS | ||||
| #	def_bool n | ||||
| #	depends on TC | ||||
|  | ||||
| config BUSYBOX_CONFIG_TCPSVD | ||||
| 	bool "tcpsvd" | ||||
| 	default BUSYBOX_DEFAULT_TCPSVD | ||||
| @@ -911,6 +773,12 @@ config BUSYBOX_CONFIG_TCPSVD | ||||
| 	  tcpsvd listens on a TCP port and runs a program for each new | ||||
| 	  connection. | ||||
|  | ||||
| config BUSYBOX_CONFIG_UDPSVD | ||||
| 	bool "udpsvd" | ||||
| 	default BUSYBOX_DEFAULT_UDPSVD | ||||
| 	help | ||||
| 	  udpsvd listens on an UDP port and runs a program for each new | ||||
| 	  connection. | ||||
| config BUSYBOX_CONFIG_TELNET | ||||
| 	bool "telnet" | ||||
| 	default BUSYBOX_DEFAULT_TELNET | ||||
| @@ -936,7 +804,6 @@ config BUSYBOX_CONFIG_FEATURE_TELNET_AUTOLOGIN | ||||
| 	  remote host you are connecting to. This is useful when you need to | ||||
| 	  log into a machine without telling the username (autologin). This | ||||
| 	  option enables `-a' and `-l USER' arguments. | ||||
|  | ||||
| config BUSYBOX_CONFIG_TELNETD | ||||
| 	bool "telnetd" | ||||
| 	default BUSYBOX_DEFAULT_TELNETD | ||||
| @@ -978,7 +845,6 @@ config BUSYBOX_CONFIG_TELNETD | ||||
|  | ||||
| 	  with all that done, telnetd _should_ work.... | ||||
|  | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE | ||||
| 	bool "Support standalone telnetd (not inetd only)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_TELNETD_STANDALONE | ||||
| @@ -1006,7 +872,6 @@ config BUSYBOX_CONFIG_FEATURE_TELNETD_INETD_WAIT | ||||
| 	  This option is rarely used. "tcp nowait" is much more usual | ||||
| 	  way of running tcp services, including telnetd. | ||||
| 	  You most probably want to say N here. | ||||
|  | ||||
| config BUSYBOX_CONFIG_TFTP | ||||
| 	bool "tftp" | ||||
| 	default BUSYBOX_DEFAULT_TFTP | ||||
| @@ -1071,7 +936,6 @@ config BUSYBOX_CONFIG_TFTP_DEBUG | ||||
| 	help | ||||
| 	  Make tftp[d] print debugging messages on stderr. | ||||
| 	  This is useful if you are diagnosing a bug in tftp[d]. | ||||
|  | ||||
| config BUSYBOX_CONFIG_TRACEROUTE | ||||
| 	bool "traceroute" | ||||
| 	default BUSYBOX_DEFAULT_TRACEROUTE | ||||
| @@ -1082,33 +946,24 @@ config BUSYBOX_CONFIG_TRACEROUTE | ||||
| config BUSYBOX_CONFIG_TRACEROUTE6 | ||||
| 	bool "traceroute6" | ||||
| 	default BUSYBOX_DEFAULT_TRACEROUTE6 | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IPV6 && BUSYBOX_CONFIG_TRACEROUTE | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IPV6 | ||||
| 	help | ||||
| 	  Utility to trace the route of IPv6 packets. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_VERBOSE | ||||
| 	bool "Enable verbose output" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_VERBOSE | ||||
| 	depends on BUSYBOX_CONFIG_TRACEROUTE | ||||
| 	depends on BUSYBOX_CONFIG_TRACEROUTE || BUSYBOX_CONFIG_TRACEROUTE6 | ||||
| 	help | ||||
| 	  Add some verbosity to traceroute. This includes among other things | ||||
| 	  hostnames and ICMP response types. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE | ||||
| 	bool "Enable loose source route" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_SOURCE_ROUTE | ||||
| 	depends on BUSYBOX_CONFIG_TRACEROUTE | ||||
| 	help | ||||
| 	  Add option to specify a loose source route gateway | ||||
| 	  (8 maximum). | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_TRACEROUTE_USE_ICMP | ||||
| 	bool "Use ICMP instead of UDP" | ||||
| 	bool "Enable -I option (use ICMP instead of UDP)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_TRACEROUTE_USE_ICMP | ||||
| 	depends on BUSYBOX_CONFIG_TRACEROUTE | ||||
| 	depends on BUSYBOX_CONFIG_TRACEROUTE || BUSYBOX_CONFIG_TRACEROUTE6 | ||||
| 	help | ||||
| 	  Add option -I to use ICMP ECHO instead of UDP datagrams. | ||||
|  | ||||
| config BUSYBOX_CONFIG_TUNCTL | ||||
| 	bool "tunctl" | ||||
| 	default BUSYBOX_DEFAULT_TUNCTL | ||||
| @@ -1123,32 +978,101 @@ config BUSYBOX_CONFIG_FEATURE_TUNCTL_UG | ||||
| 	help | ||||
| 	  Allow to specify owner and group of newly created interface. | ||||
| 	  340 bytes of pure bloat. Say no here. | ||||
|  | ||||
| source udhcp/Config.in | ||||
|  | ||||
| config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS | ||||
| 	string "ifup udhcpc command line options" | ||||
| 	default BUSYBOX_DEFAULT_IFUPDOWN_UDHCPC_CMD_OPTIONS | ||||
| 	depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_UDHCPC | ||||
| 	help | ||||
| 	  Command line options to pass to udhcpc from ifup. | ||||
| 	  Intended to alter options not available in /etc/network/interfaces. | ||||
| 	  (IE: --syslog --background etc...) | ||||
|  | ||||
| config BUSYBOX_CONFIG_UDPSVD | ||||
| 	bool "udpsvd" | ||||
| 	default BUSYBOX_DEFAULT_UDPSVD | ||||
| 	help | ||||
| 	  udpsvd listens on an UDP port and runs a program for each new | ||||
| 	  connection. | ||||
|  | ||||
| config BUSYBOX_CONFIG_VCONFIG | ||||
| 	bool "vconfig" | ||||
| 	default BUSYBOX_DEFAULT_VCONFIG | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Creates, removes, and configures VLAN interfaces | ||||
| config BUSYBOX_CONFIG_WGET | ||||
| 	bool "wget" | ||||
| 	default BUSYBOX_DEFAULT_WGET | ||||
| 	help | ||||
| 	  wget is a utility for non-interactive download of files from HTTP | ||||
| 	  and FTP servers. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_STATUSBAR | ||||
| 	bool "Enable a nifty process meter (+2k)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_STATUSBAR | ||||
| 	depends on BUSYBOX_CONFIG_WGET | ||||
| 	help | ||||
| 	  Enable the transfer progress bar for wget transfers. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_AUTHENTICATION | ||||
| 	bool "Enable HTTP authentication" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_AUTHENTICATION | ||||
| 	depends on BUSYBOX_CONFIG_WGET | ||||
| 	help | ||||
| 	  Support authenticated HTTP transfers. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_LONG_OPTIONS | ||||
| 	bool "Enable long options" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_LONG_OPTIONS | ||||
| 	depends on BUSYBOX_CONFIG_WGET && BUSYBOX_CONFIG_LONG_OPTS | ||||
| 	help | ||||
| 	  Support long options for the wget applet. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT | ||||
| 	bool "Enable timeout option -T SEC" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_TIMEOUT | ||||
| 	depends on BUSYBOX_CONFIG_WGET | ||||
| 	help | ||||
| 	  Supports network read and connect timeouts for wget, | ||||
| 	  so that wget will give up and timeout, through the -T | ||||
| 	  command line option. | ||||
|  | ||||
| 	  Currently only connect and network data read timeout are | ||||
| 	  supported (i.e., timeout is not applied to the DNS query). When | ||||
| 	  FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option | ||||
| 	  will work in addition to -T. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_OPENSSL | ||||
| 	bool "Try to connect to HTTPS using openssl" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_OPENSSL | ||||
| 	depends on BUSYBOX_CONFIG_WGET | ||||
| 	help | ||||
| 	  Choose how wget establishes SSL connection for https:// URLs. | ||||
|  | ||||
| 	  Busybox itself contains no SSL code. wget will spawn | ||||
| 	  a helper program to talk over HTTPS. | ||||
|  | ||||
| 	  OpenSSL has a simple SSL client for debug purposes. | ||||
| 	  If you select "openssl" helper, wget will effectively run: | ||||
| 	  "openssl s_client -quiet -connect hostname:443 | ||||
| 	  -servername hostname 2>/dev/null" and pipe its data | ||||
| 	  through it. -servername is not used if hostname is numeric. | ||||
| 	  Note inconvenient API: host resolution is done twice, | ||||
| 	  and there is no guarantee openssl's idea of IPv6 address | ||||
| 	  format is the same as ours. | ||||
| 	  Another problem is that s_client prints debug information | ||||
| 	  to stderr, and it needs to be suppressed. This means | ||||
| 	  all error messages get suppressed too. | ||||
| 	  openssl is also a big binary, often dynamically linked | ||||
| 	  against ~15 libraries. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_WGET_SSL_HELPER | ||||
| 	bool "Try to connect to HTTPS using ssl_helper" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_WGET_SSL_HELPER | ||||
| 	depends on BUSYBOX_CONFIG_WGET | ||||
| 	help | ||||
| 	  Choose how wget establishes SSL connection for https:// URLs. | ||||
|  | ||||
| 	  Busybox itself contains no SSL code. wget will spawn | ||||
| 	  a helper program to talk over HTTPS. | ||||
|  | ||||
| 	  ssl_helper is a tool which can be built statically | ||||
| 	  from busybox sources against a small embedded SSL library. | ||||
| 	  Please see networking/ssl_helper/README. | ||||
| 	  It does not require double host resolution and emits | ||||
| 	  error messages to stderr. | ||||
|  | ||||
| 	  Precompiled static binary may be available at | ||||
| 	  http://busybox.net/downloads/binaries/ | ||||
| config BUSYBOX_CONFIG_WHOIS | ||||
| 	bool "whois" | ||||
| 	default BUSYBOX_DEFAULT_WHOIS | ||||
| 	help | ||||
| 	  whois is a client for the whois directory service | ||||
| config BUSYBOX_CONFIG_ZCIP | ||||
| 	bool "zcip" | ||||
| 	default BUSYBOX_DEFAULT_ZCIP | ||||
| @@ -1162,4 +1086,15 @@ config BUSYBOX_CONFIG_ZCIP | ||||
| 	  See http://www.zeroconf.org for further details, and "zcip.script" | ||||
| 	  in the busybox examples. | ||||
|  | ||||
| source udhcp/Config.in | ||||
|  | ||||
| config BUSYBOX_CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS | ||||
| 	string "ifup udhcpc command line options" | ||||
| 	default BUSYBOX_DEFAULT_IFUPDOWN_UDHCPC_CMD_OPTIONS | ||||
| 	depends on BUSYBOX_CONFIG_IFUPDOWN && BUSYBOX_CONFIG_UDHCPC | ||||
| 	help | ||||
| 	  Command line options to pass to udhcpc from ifup. | ||||
| 	  Intended to alter options not available in /etc/network/interfaces. | ||||
| 	  (IE: --syslog --background etc...) | ||||
|  | ||||
| endmenu | ||||
|   | ||||
| @@ -22,7 +22,6 @@ config BUSYBOX_CONFIG_UDHCPD | ||||
| config BUSYBOX_CONFIG_DHCPRELAY | ||||
| 	bool "dhcprelay" | ||||
| 	default BUSYBOX_DEFAULT_DHCPRELAY | ||||
| 	depends on BUSYBOX_CONFIG_UDHCPD | ||||
| 	help | ||||
| 	  dhcprelay listens for dhcp requests on one or more interfaces | ||||
| 	  and forwards these requests to a different interface or dhcp | ||||
| @@ -31,7 +30,6 @@ config BUSYBOX_CONFIG_DHCPRELAY | ||||
| config BUSYBOX_CONFIG_DUMPLEASES | ||||
| 	bool "Lease display utility (dumpleases)" | ||||
| 	default BUSYBOX_DEFAULT_DUMPLEASES | ||||
| 	depends on BUSYBOX_CONFIG_UDHCPD | ||||
| 	help | ||||
| 	  dumpleases displays the leases written out by the udhcpd server. | ||||
| 	  Lease times are stored in the file by time remaining in lease, or | ||||
|   | ||||
| @@ -6,11 +6,50 @@ | ||||
|  | ||||
| menu "Process Utilities" | ||||
|  | ||||
| config BUSYBOX_CONFIG_FREE | ||||
| 	bool "free" | ||||
| 	default BUSYBOX_DEFAULT_FREE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX #sysinfo() | ||||
| 	help | ||||
| 	  free displays the total amount of free and used physical and swap | ||||
| 	  memory in the system, as well as the buffers used by the kernel. | ||||
| 	  The shared memory column should be ignored; it is obsolete. | ||||
| config BUSYBOX_CONFIG_FUSER | ||||
| 	bool "fuser" | ||||
| 	default BUSYBOX_DEFAULT_FUSER | ||||
| 	help | ||||
| 	  fuser lists all PIDs (Process IDs) that currently have a given | ||||
| 	  file open. fuser can also list all PIDs that have a given network | ||||
| 	  (TCP or UDP) port open. | ||||
| config BUSYBOX_CONFIG_IOSTAT | ||||
| 	bool "iostat" | ||||
| 	default BUSYBOX_DEFAULT_IOSTAT | ||||
| 	help | ||||
| 	  Report CPU and I/O statistics | ||||
| config BUSYBOX_CONFIG_KILL | ||||
| 	bool "kill" | ||||
| 	default BUSYBOX_DEFAULT_KILL | ||||
| 	help | ||||
| 	  The command kill sends the specified signal to the specified | ||||
| 	  process or process group. If no signal is specified, the TERM | ||||
| 	  signal is sent. | ||||
|  | ||||
| config BUSYBOX_CONFIG_KILLALL | ||||
| 	bool "killall" | ||||
| 	default BUSYBOX_DEFAULT_KILLALL | ||||
| 	help | ||||
| 	  killall sends a signal to all processes running any of the | ||||
| 	  specified commands. If no signal name is specified, SIGTERM is | ||||
| 	  sent. | ||||
|  | ||||
| config BUSYBOX_CONFIG_KILLALL5 | ||||
| 	bool "killall5" | ||||
| 	default BUSYBOX_DEFAULT_KILLALL5 | ||||
| 	help | ||||
| 	  The SystemV killall command. killall5 sends a signal | ||||
| 	  to all processes except kernel threads and the processes | ||||
| 	  in its own session, so it won't kill the shell that is running | ||||
| 	  the script it was called from. | ||||
| config BUSYBOX_CONFIG_LSOF | ||||
| 	bool "lsof" | ||||
| 	default BUSYBOX_DEFAULT_LSOF | ||||
| @@ -27,6 +66,39 @@ config BUSYBOX_CONFIG_NMETER | ||||
| 	default BUSYBOX_DEFAULT_NMETER | ||||
| 	help | ||||
| 	  Prints selected system stats continuously, one line per update. | ||||
| config BUSYBOX_CONFIG_PGREP | ||||
| 	bool "pgrep" | ||||
| 	default BUSYBOX_DEFAULT_PGREP | ||||
| 	help | ||||
| 	  Look for processes by name. | ||||
|  | ||||
| config BUSYBOX_CONFIG_PKILL | ||||
| 	bool "pkill" | ||||
| 	default BUSYBOX_DEFAULT_PKILL | ||||
| 	help | ||||
| 	  Send signals to processes by name. | ||||
| config BUSYBOX_CONFIG_PIDOF | ||||
| 	bool "pidof" | ||||
| 	default BUSYBOX_DEFAULT_PIDOF | ||||
| 	help | ||||
| 	  Pidof finds the process id's (pids) of the named programs. It prints | ||||
| 	  those id's on the standard output. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PIDOF_SINGLE | ||||
| 	bool "Enable argument for single shot (-s)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PIDOF_SINGLE | ||||
| 	depends on BUSYBOX_CONFIG_PIDOF | ||||
| 	help | ||||
| 	  Support argument '-s' for returning only the first pid found. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PIDOF_OMIT | ||||
| 	bool "Enable argument for omitting pids (-o)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PIDOF_OMIT | ||||
| 	depends on BUSYBOX_CONFIG_PIDOF | ||||
| 	help | ||||
| 	  Support argument '-o' for omitting the given pids in output. | ||||
| 	  The special pid %PPID can be used to name the parent process | ||||
| 	  of the pidof, in other words the calling shell or shell script. | ||||
| config BUSYBOX_CONFIG_PMAP | ||||
|        bool "pmap" | ||||
|        default BUSYBOX_DEFAULT_PMAP | ||||
| @@ -37,6 +109,51 @@ config BUSYBOX_CONFIG_POWERTOP | ||||
| 	default BUSYBOX_DEFAULT_POWERTOP | ||||
| 	help | ||||
| 	  Analyze power consumption on Intel-based laptops | ||||
| config BUSYBOX_CONFIG_PS | ||||
| 	bool "ps" | ||||
| 	default BUSYBOX_DEFAULT_PS | ||||
| 	help | ||||
| 	  ps gives a snapshot of the current processes. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PS_WIDE | ||||
| 	bool "Enable wide output option (-w)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PS_WIDE | ||||
| 	depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP | ||||
| 	help | ||||
| 	  Support argument 'w' for wide output. | ||||
| 	  If given once, 132 chars are printed, and if given more | ||||
| 	  than once, the length is unlimited. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PS_LONG | ||||
| 	bool "Enable long output option (-l)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PS_LONG | ||||
| 	depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP | ||||
| 	help | ||||
| 	  Support argument 'l' for long output. | ||||
| 	  Adds fields PPID, RSS, START, TIME & TTY | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PS_TIME | ||||
| 	bool "Enable time and elapsed time output" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PS_TIME | ||||
| 	depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Support -o time and -o etime output specifiers. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS | ||||
| 	bool "Enable additional ps columns" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PS_ADDITIONAL_COLUMNS | ||||
| 	depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP | ||||
| 	help | ||||
| 	  Support -o rgroup, -o ruser, -o nice output specifiers. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS | ||||
| 	bool "Support Linux prior to 2.4.0 and non-ELF systems" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PS_UNUSUAL_SYSTEMS | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_PS_TIME | ||||
| 	help | ||||
| 	  Include support for measuring HZ on old kernels and non-ELF systems | ||||
| 	  (if you are on Linux 2.4.0+ and use ELF, you don't need this) | ||||
| config BUSYBOX_CONFIG_PSTREE | ||||
| 	bool "pstree" | ||||
| 	default BUSYBOX_DEFAULT_PSTREE | ||||
| @@ -47,12 +164,23 @@ config BUSYBOX_CONFIG_PWDX | ||||
| 	default BUSYBOX_DEFAULT_PWDX | ||||
| 	help | ||||
| 	  Report current working directory of a process | ||||
| config BUSYBOX_CONFIG_RENICE | ||||
| 	bool "renice" | ||||
| 	default BUSYBOX_DEFAULT_RENICE | ||||
| 	help | ||||
| 	  Renice alters the scheduling priority of one or more running | ||||
| 	  processes. | ||||
| config BUSYBOX_CONFIG_SMEMCAP | ||||
| 	bool "smemcap" | ||||
| 	default BUSYBOX_DEFAULT_SMEMCAP | ||||
| 	help | ||||
| 	  smemcap is a tool for capturing process data for smem, | ||||
| 	  a memory usage statistic tool. | ||||
| config BUSYBOX_CONFIG_BB_SYSCTL | ||||
| 	bool "sysctl" | ||||
| 	default BUSYBOX_DEFAULT_BB_SYSCTL | ||||
| 	help | ||||
| 	  Configure kernel parameters at runtime. | ||||
| config BUSYBOX_CONFIG_TOP | ||||
| 	bool "top" | ||||
| 	default BUSYBOX_DEFAULT_TOP | ||||
| @@ -121,139 +249,12 @@ config BUSYBOX_CONFIG_FEATURE_UPTIME_UTMP_SUPPORT | ||||
| 	depends on BUSYBOX_CONFIG_UPTIME && BUSYBOX_CONFIG_FEATURE_UTMP | ||||
| 	help | ||||
| 	  Makes uptime display the number of users currently logged on. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FREE | ||||
| 	bool "free" | ||||
| 	default BUSYBOX_DEFAULT_FREE | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX #sysinfo() | ||||
| config BUSYBOX_CONFIG_WATCH | ||||
| 	bool "watch" | ||||
| 	default BUSYBOX_DEFAULT_WATCH | ||||
| 	help | ||||
| 	  free displays the total amount of free and used physical and swap | ||||
| 	  memory in the system, as well as the buffers used by the kernel. | ||||
| 	  The shared memory column should be ignored; it is obsolete. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FUSER | ||||
| 	bool "fuser" | ||||
| 	default BUSYBOX_DEFAULT_FUSER | ||||
| 	help | ||||
| 	  fuser lists all PIDs (Process IDs) that currently have a given | ||||
| 	  file open. fuser can also list all PIDs that have a given network | ||||
| 	  (TCP or UDP) port open. | ||||
|  | ||||
| config BUSYBOX_CONFIG_KILL | ||||
| 	bool "kill" | ||||
| 	default BUSYBOX_DEFAULT_KILL | ||||
| 	help | ||||
| 	  The command kill sends the specified signal to the specified | ||||
| 	  process or process group. If no signal is specified, the TERM | ||||
| 	  signal is sent. | ||||
|  | ||||
| config BUSYBOX_CONFIG_KILLALL | ||||
| 	bool "killall" | ||||
| 	default BUSYBOX_DEFAULT_KILLALL | ||||
| 	depends on BUSYBOX_CONFIG_KILL | ||||
| 	help | ||||
| 	  killall sends a signal to all processes running any of the | ||||
| 	  specified commands. If no signal name is specified, SIGTERM is | ||||
| 	  sent. | ||||
|  | ||||
| config BUSYBOX_CONFIG_KILLALL5 | ||||
| 	bool "killall5" | ||||
| 	default BUSYBOX_DEFAULT_KILLALL5 | ||||
| 	depends on BUSYBOX_CONFIG_KILL | ||||
|  | ||||
| config BUSYBOX_CONFIG_PGREP | ||||
| 	bool "pgrep" | ||||
| 	default BUSYBOX_DEFAULT_PGREP | ||||
| 	help | ||||
| 	  Look for processes by name. | ||||
|  | ||||
| config BUSYBOX_CONFIG_PIDOF | ||||
| 	bool "pidof" | ||||
| 	default BUSYBOX_DEFAULT_PIDOF | ||||
| 	help | ||||
| 	  Pidof finds the process id's (pids) of the named programs. It prints | ||||
| 	  those id's on the standard output. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PIDOF_SINGLE | ||||
| 	bool "Enable argument for single shot (-s)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PIDOF_SINGLE | ||||
| 	depends on BUSYBOX_CONFIG_PIDOF | ||||
| 	help | ||||
| 	  Support argument '-s' for returning only the first pid found. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PIDOF_OMIT | ||||
| 	bool "Enable argument for omitting pids (-o)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PIDOF_OMIT | ||||
| 	depends on BUSYBOX_CONFIG_PIDOF | ||||
| 	help | ||||
| 	  Support argument '-o' for omitting the given pids in output. | ||||
| 	  The special pid %PPID can be used to name the parent process | ||||
| 	  of the pidof, in other words the calling shell or shell script. | ||||
|  | ||||
| config BUSYBOX_CONFIG_PKILL | ||||
| 	bool "pkill" | ||||
| 	default BUSYBOX_DEFAULT_PKILL | ||||
| 	help | ||||
| 	  Send signals to processes by name. | ||||
|  | ||||
| config BUSYBOX_CONFIG_PS | ||||
| 	bool "ps" | ||||
| 	default BUSYBOX_DEFAULT_PS | ||||
| 	help | ||||
| 	  ps gives a snapshot of the current processes. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PS_WIDE | ||||
| 	bool "Enable wide output option (-w)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PS_WIDE | ||||
| 	depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP | ||||
| 	help | ||||
| 	  Support argument 'w' for wide output. | ||||
| 	  If given once, 132 chars are printed, and if given more | ||||
| 	  than once, the length is unlimited. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PS_LONG | ||||
| 	bool "Enable long output option (-l)" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PS_LONG | ||||
| 	depends on BUSYBOX_CONFIG_PS && !BUSYBOX_CONFIG_DESKTOP | ||||
| 	help | ||||
| 	  Support argument 'l' for long output. | ||||
| 	  Adds fields PPID, RSS, START, TIME & TTY | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PS_TIME | ||||
| 	bool "Enable time and elapsed time output" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PS_TIME | ||||
| 	depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP | ||||
| 	select BUSYBOX_CONFIG_PLATFORM_LINUX | ||||
| 	help | ||||
| 	  Support -o time and -o etime output specifiers. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS | ||||
| 	bool "Enable additional ps columns" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PS_ADDITIONAL_COLUMNS | ||||
| 	depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP | ||||
| 	help | ||||
| 	  Support -o rgroup, -o ruser, -o nice output specifiers. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS | ||||
| 	bool "Support Linux prior to 2.4.0 and non-ELF systems" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_PS_UNUSUAL_SYSTEMS | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_PS_TIME | ||||
| 	help | ||||
| 	  Include support for measuring HZ on old kernels and non-ELF systems | ||||
| 	  (if you are on Linux 2.4.0+ and use ELF, you don't need this) | ||||
|  | ||||
| config BUSYBOX_CONFIG_RENICE | ||||
| 	bool "renice" | ||||
| 	default BUSYBOX_DEFAULT_RENICE | ||||
| 	help | ||||
| 	  Renice alters the scheduling priority of one or more running | ||||
| 	  processes. | ||||
|  | ||||
| config BUSYBOX_CONFIG_BB_SYSCTL | ||||
| 	bool "sysctl" | ||||
| 	default BUSYBOX_DEFAULT_BB_SYSCTL | ||||
| 	help | ||||
| 	  Configure kernel parameters at runtime. | ||||
| 	  watch is used to execute a program periodically, showing | ||||
| 	  output to the screen. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS | ||||
| 	bool "Support for showing threads in ps/pstree/top" | ||||
| @@ -263,11 +264,4 @@ config BUSYBOX_CONFIG_FEATURE_SHOW_THREADS | ||||
| 	  Enables the ps -T option, showing of threads in pstree, | ||||
| 	  and 'h' command in top. | ||||
|  | ||||
| config BUSYBOX_CONFIG_WATCH | ||||
| 	bool "watch" | ||||
| 	default BUSYBOX_DEFAULT_WATCH | ||||
| 	help | ||||
| 	  watch is used to execute a program periodically, showing | ||||
| 	  output to the screen. | ||||
|  | ||||
| endmenu | ||||
|   | ||||
| @@ -73,6 +73,13 @@ config BUSYBOX_CONFIG_SV_DEFAULT_SERVICE_DIR | ||||
| 	help | ||||
| 	  Default directory for services. | ||||
| 	  Defaults to "/var/service" | ||||
|  | ||||
| config BUSYBOX_CONFIG_SVC | ||||
| 	bool "svc" | ||||
| 	default BUSYBOX_DEFAULT_SVC | ||||
| 	help | ||||
| 	  svc controls the state of services monitored by the runsv supervisor. | ||||
| 	  It is comaptible with daemontools command with the same name. | ||||
| config BUSYBOX_CONFIG_SVLOGD | ||||
| 	bool "svlogd" | ||||
| 	default BUSYBOX_DEFAULT_SVLOGD | ||||
|   | ||||
| @@ -7,7 +7,6 @@ | ||||
| menu "SELinux Utilities" | ||||
| 	depends on BUSYBOX_CONFIG_SELINUX | ||||
|  | ||||
|  | ||||
| config BUSYBOX_CONFIG_CHCON | ||||
| 	bool "chcon" | ||||
| 	default BUSYBOX_DEFAULT_CHCON | ||||
| @@ -21,28 +20,24 @@ config BUSYBOX_CONFIG_FEATURE_CHCON_LONG_OPTIONS | ||||
| 	depends on BUSYBOX_CONFIG_CHCON && BUSYBOX_CONFIG_LONG_OPTS | ||||
| 	help | ||||
| 	  Support long options for the chcon applet. | ||||
|  | ||||
| config BUSYBOX_CONFIG_GETENFORCE | ||||
| 	bool "getenforce" | ||||
| 	default BUSYBOX_DEFAULT_GETENFORCE | ||||
| 	depends on BUSYBOX_CONFIG_SELINUX | ||||
| 	help | ||||
| 	  Enable support to get the current mode of SELinux. | ||||
|  | ||||
| config BUSYBOX_CONFIG_GETSEBOOL | ||||
| 	bool "getsebool" | ||||
| 	default BUSYBOX_DEFAULT_GETSEBOOL | ||||
| 	depends on BUSYBOX_CONFIG_SELINUX | ||||
| 	help | ||||
| 	  Enable support to get SELinux boolean values. | ||||
|  | ||||
| config BUSYBOX_CONFIG_LOAD_POLICY | ||||
| 	bool "load_policy" | ||||
| 	default BUSYBOX_DEFAULT_LOAD_POLICY | ||||
| 	depends on BUSYBOX_CONFIG_SELINUX | ||||
| 	help | ||||
| 	  Enable support to load SELinux policy. | ||||
|  | ||||
| config BUSYBOX_CONFIG_MATCHPATHCON | ||||
| 	bool "matchpathcon" | ||||
| 	default BUSYBOX_DEFAULT_MATCHPATHCON | ||||
| @@ -50,15 +45,6 @@ config BUSYBOX_CONFIG_MATCHPATHCON | ||||
| 	help | ||||
| 	  Enable support to get default security context of the | ||||
| 	  specified path from the file contexts configuration. | ||||
|  | ||||
| config BUSYBOX_CONFIG_RESTORECON | ||||
| 	bool "restorecon" | ||||
| 	default BUSYBOX_DEFAULT_RESTORECON | ||||
| 	depends on BUSYBOX_CONFIG_SELINUX | ||||
| 	help | ||||
| 	  Enable support to relabel files. The feature is almost | ||||
| 	  the same as setfiles, but usage is a little different. | ||||
|  | ||||
| config BUSYBOX_CONFIG_RUNCON | ||||
| 	bool "runcon" | ||||
| 	default BUSYBOX_DEFAULT_RUNCON | ||||
| @@ -72,7 +58,6 @@ config BUSYBOX_CONFIG_FEATURE_RUNCON_LONG_OPTIONS | ||||
| 	depends on BUSYBOX_CONFIG_RUNCON && BUSYBOX_CONFIG_LONG_OPTS | ||||
| 	help | ||||
| 	  Support long options for the runcon applet. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SELINUXENABLED | ||||
| 	bool "selinuxenabled" | ||||
| 	default BUSYBOX_DEFAULT_SELINUXENABLED | ||||
| @@ -80,14 +65,18 @@ config BUSYBOX_CONFIG_SELINUXENABLED | ||||
| 	help | ||||
| 	  Enable support for this command to be used within shell scripts | ||||
| 	  to determine if selinux is enabled. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SESTATUS | ||||
| 	bool "sestatus" | ||||
| 	default BUSYBOX_DEFAULT_SESTATUS | ||||
| 	depends on BUSYBOX_CONFIG_SELINUX | ||||
| 	help | ||||
| 	  Displays the status of SELinux. | ||||
| config BUSYBOX_CONFIG_SETENFORCE | ||||
| 	bool "setenforce" | ||||
| 	default BUSYBOX_DEFAULT_SETENFORCE | ||||
| 	depends on BUSYBOX_CONFIG_SELINUX | ||||
| 	help | ||||
| 	  Enable support to modify the mode SELinux is running in. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SETFILES | ||||
| 	bool "setfiles" | ||||
| 	default BUSYBOX_DEFAULT_SETFILES | ||||
| @@ -106,6 +95,13 @@ config BUSYBOX_CONFIG_FEATURE_SETFILES_CHECK_OPTION | ||||
| 	  Support "-c" option (check the validity of the contexts against | ||||
| 	  the specified binary policy) for setfiles. Requires libsepol. | ||||
|  | ||||
| config BUSYBOX_CONFIG_RESTORECON | ||||
| 	bool "restorecon" | ||||
| 	default BUSYBOX_DEFAULT_RESTORECON | ||||
| 	depends on BUSYBOX_CONFIG_SELINUX | ||||
| 	help | ||||
| 	  Enable support to relabel files. The feature is almost | ||||
| 	  the same as setfiles, but usage is a little different. | ||||
| config BUSYBOX_CONFIG_SETSEBOOL | ||||
| 	bool "setsebool" | ||||
| 	default BUSYBOX_DEFAULT_SETSEBOOL | ||||
| @@ -114,11 +110,4 @@ config BUSYBOX_CONFIG_SETSEBOOL | ||||
| 	  Enable support for change boolean. | ||||
| 	  semanage and -P option is not supported yet. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SESTATUS | ||||
| 	bool "sestatus" | ||||
| 	default BUSYBOX_DEFAULT_SESTATUS | ||||
| 	depends on BUSYBOX_CONFIG_SELINUX | ||||
| 	help | ||||
| 	  Displays the status of SELinux. | ||||
|  | ||||
| endmenu | ||||
|   | ||||
| @@ -6,6 +6,57 @@ | ||||
|  | ||||
| menu "Shells" | ||||
|  | ||||
|  | ||||
| choice | ||||
| 	prompt "Choose which shell is aliased to 'sh' name" | ||||
| 	default BUSYBOX_CONFIG_SH_IS_ASH | ||||
| 	help | ||||
| 	  Choose which shell you want to be executed by 'sh' alias. | ||||
| 	  The ash shell is the most bash compatible and full featured one. | ||||
|  | ||||
| # note: cannot use "select ASH" here, it breaks "make allnoconfig" | ||||
| config BUSYBOX_CONFIG_SH_IS_ASH | ||||
| 	depends on !BUSYBOX_CONFIG_NOMMU | ||||
| 	bool "ash" | ||||
|  | ||||
| config BUSYBOX_CONFIG_SH_IS_HUSH | ||||
| 	bool "hush" | ||||
|  | ||||
| config BUSYBOX_CONFIG_SH_IS_NONE | ||||
| 	bool "none" | ||||
|  | ||||
| endchoice | ||||
|  | ||||
| choice | ||||
| 	prompt "Choose which shell is aliased to 'bash' name" | ||||
| 	default BUSYBOX_CONFIG_BASH_IS_NONE | ||||
| 	help | ||||
| 	  Choose which shell you want to be executed by 'bash' alias. | ||||
| 	  The ash shell is the most bash compatible and full featured one. | ||||
|  | ||||
| 	  Note that selecting this option does not switch on any bash | ||||
| 	  compatibility code. It merely makes it possible to install | ||||
| 	  /bin/bash (sym)link and run scripts which start with | ||||
| 	  #!/bin/bash line. | ||||
|  | ||||
| 	  Many systems use it in scripts which use bash-specific features, | ||||
| 	  even simple ones like $RANDOM. Without this option, busybox | ||||
| 	  can't be used for running them because it won't recongnize | ||||
| 	  "bash" as a supported applet name. | ||||
|  | ||||
| config BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	depends on !BUSYBOX_CONFIG_NOMMU | ||||
| 	bool "ash" | ||||
|  | ||||
| config BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	bool "hush" | ||||
|  | ||||
| config BUSYBOX_CONFIG_BASH_IS_NONE | ||||
| 	bool "none" | ||||
|  | ||||
| endchoice | ||||
|  | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH | ||||
| 	bool "ash" | ||||
| 	default BUSYBOX_DEFAULT_ASH | ||||
| @@ -17,96 +68,26 @@ config BUSYBOX_CONFIG_ASH | ||||
| 	  shell (by Herbert Xu), which was created by porting the 'ash' shell | ||||
| 	  (written by Kenneth Almquist) from NetBSD. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_BASH_COMPAT | ||||
| 	bool "bash-compatible extensions" | ||||
| 	default BUSYBOX_DEFAULT_ASH_BASH_COMPAT | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	help | ||||
| 	  Enable bash-compatible extensions. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT | ||||
| 	bool "Idle timeout variable" | ||||
| 	default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	help | ||||
| 	  Enables bash-like auto-logout after $TMOUT seconds of idle time. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_JOB_CONTROL | ||||
| 	bool "Job control" | ||||
| 	default BUSYBOX_DEFAULT_ASH_JOB_CONTROL | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	help | ||||
| 	  Enable job control in the ash shell. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_ALIAS | ||||
| 	bool "Alias support" | ||||
| 	default BUSYBOX_DEFAULT_ASH_ALIAS | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	help | ||||
| 	  Enable alias support in the ash shell. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_GETOPTS | ||||
| 	bool "Builtin getopt to parse positional parameters" | ||||
| 	default BUSYBOX_DEFAULT_ASH_GETOPTS | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	help | ||||
| 	  Enable support for getopts builtin in ash. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO | ||||
| 	bool "Builtin version of 'echo'" | ||||
| 	default BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	help | ||||
| 	  Enable support for echo builtin in ash. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF | ||||
| 	bool "Builtin version of 'printf'" | ||||
| 	default BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	help | ||||
| 	  Enable support for printf builtin in ash. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_BUILTIN_TEST | ||||
| 	bool "Builtin version of 'test'" | ||||
| 	default BUSYBOX_DEFAULT_ASH_BUILTIN_TEST | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	help | ||||
| 	  Enable support for test builtin in ash. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_HELP | ||||
| 	bool "help builtin" | ||||
| 	default BUSYBOX_DEFAULT_ASH_HELP | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	help | ||||
| 	  Enable help builtin in ash. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_CMDCMD | ||||
| 	bool "'command' command to override shell builtins" | ||||
| 	default BUSYBOX_DEFAULT_ASH_CMDCMD | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	help | ||||
| 	  Enable support for the ash 'command' builtin, which allows | ||||
| 	  you to run the specified command with the specified arguments, | ||||
| 	  even when there is an ash builtin command with the same name. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_MAIL | ||||
| 	bool "Check for new mail on interactive shells" | ||||
| 	default BUSYBOX_DEFAULT_ASH_MAIL | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	help | ||||
| 	  Enable "check for new mail" function in the ash shell. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE | ||||
| 	bool "Optimize for size instead of speed" | ||||
| 	default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Compile ash for reduced size at the price of speed. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_INTERNAL_GLOB | ||||
| 	bool "Use internal glob() implementation" | ||||
| 	default BUSYBOX_DEFAULT_ASH_INTERNAL_GLOB	# Y is bigger, but because of uclibc glob() bug, let Y be default for now | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Do not use glob() function from libc, use internal implementation. | ||||
| 	  Use this if you are getting "glob.h: No such file or directory" | ||||
| 	  or similar build errors. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT | ||||
| 	bool "Pseudorandom generator and $RANDOM variable" | ||||
| 	default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enable pseudorandom generator and dynamic variable "$RANDOM". | ||||
| 	  Each read of "$RANDOM" will generate a new pseudorandom value. | ||||
| @@ -117,12 +98,90 @@ config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT | ||||
| config BUSYBOX_CONFIG_ASH_EXPAND_PRMT | ||||
| 	bool "Expand prompt string" | ||||
| 	default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  "PS#" may contain volatile content, such as backquote commands. | ||||
| 	  This option recreates the prompt string from the environment | ||||
| 	  variable each time it is displayed. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_BASH_COMPAT | ||||
| 	bool "bash-compatible extensions" | ||||
| 	default BUSYBOX_DEFAULT_ASH_BASH_COMPAT | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enable bash-compatible extensions. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT | ||||
| 	bool "Idle timeout variable" | ||||
| 	default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enables bash-like auto-logout after $TMOUT seconds of idle time. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_JOB_CONTROL | ||||
| 	bool "Job control" | ||||
| 	default BUSYBOX_DEFAULT_ASH_JOB_CONTROL | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enable job control in the ash shell. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_ALIAS | ||||
| 	bool "Alias support" | ||||
| 	default BUSYBOX_DEFAULT_ASH_ALIAS | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enable alias support in the ash shell. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_GETOPTS | ||||
| 	bool "Builtin getopt to parse positional parameters" | ||||
| 	default BUSYBOX_DEFAULT_ASH_GETOPTS | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enable support for getopts builtin in ash. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO | ||||
| 	bool "Builtin version of 'echo'" | ||||
| 	default BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enable support for echo builtin in ash. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF | ||||
| 	bool "Builtin version of 'printf'" | ||||
| 	default BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enable support for printf builtin in ash. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_BUILTIN_TEST | ||||
| 	bool "Builtin version of 'test'" | ||||
| 	default BUSYBOX_DEFAULT_ASH_BUILTIN_TEST | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enable support for test builtin in ash. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_HELP | ||||
| 	bool "help builtin" | ||||
| 	default BUSYBOX_DEFAULT_ASH_HELP | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enable help builtin in ash. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_CMDCMD | ||||
| 	bool "'command' command to override shell builtins" | ||||
| 	default BUSYBOX_DEFAULT_ASH_CMDCMD | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enable support for the ash 'command' builtin, which allows | ||||
| 	  you to run the specified command with the specified arguments, | ||||
| 	  even when there is an ash builtin command with the same name. | ||||
|  | ||||
| config BUSYBOX_CONFIG_ASH_MAIL | ||||
| 	bool "Check for new mail on interactive shells" | ||||
| 	default BUSYBOX_DEFAULT_ASH_MAIL | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH | ||||
| 	help | ||||
| 	  Enable "check for new mail" function in the ash shell. | ||||
| config BUSYBOX_CONFIG_CTTYHACK | ||||
| 	bool "cttyhack" | ||||
| 	default BUSYBOX_DEFAULT_CTTYHACK | ||||
| @@ -183,7 +242,7 @@ config BUSYBOX_CONFIG_HUSH | ||||
| config BUSYBOX_CONFIG_HUSH_BASH_COMPAT | ||||
| 	bool "bash-compatible extensions" | ||||
| 	default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  Enable bash-compatible extensions. | ||||
|  | ||||
| @@ -197,14 +256,14 @@ config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION | ||||
| config BUSYBOX_CONFIG_HUSH_HELP | ||||
| 	bool "help builtin" | ||||
| 	default BUSYBOX_DEFAULT_HUSH_HELP | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  Enable help builtin in hush. Code size + ~1 kbyte. | ||||
|  | ||||
| config BUSYBOX_CONFIG_HUSH_INTERACTIVE | ||||
| 	bool "Interactive mode" | ||||
| 	default BUSYBOX_DEFAULT_HUSH_INTERACTIVE | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  Enable interactive mode (prompt and command editing). | ||||
| 	  Without this, hush simply reads and executes commands | ||||
| @@ -232,35 +291,35 @@ config BUSYBOX_CONFIG_HUSH_JOB | ||||
| config BUSYBOX_CONFIG_HUSH_TICK | ||||
| 	bool "Process substitution" | ||||
| 	default BUSYBOX_DEFAULT_HUSH_TICK | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  Enable process substitution `command` and $(command) in hush. | ||||
|  | ||||
| config BUSYBOX_CONFIG_HUSH_IF | ||||
| 	bool "Support if/then/elif/else/fi" | ||||
| 	default BUSYBOX_DEFAULT_HUSH_IF | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  Enable if/then/elif/else/fi in hush. | ||||
|  | ||||
| config BUSYBOX_CONFIG_HUSH_LOOPS | ||||
| 	bool "Support for, while and until loops" | ||||
| 	default BUSYBOX_DEFAULT_HUSH_LOOPS | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  Enable for, while and until loops in hush. | ||||
|  | ||||
| config BUSYBOX_CONFIG_HUSH_CASE | ||||
| 	bool "Support case ... esac statement" | ||||
| 	default BUSYBOX_DEFAULT_HUSH_CASE | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  Enable case ... esac statement in hush. +400 bytes. | ||||
|  | ||||
| config BUSYBOX_CONFIG_HUSH_FUNCTIONS | ||||
| 	bool "Support funcname() { commands; } syntax" | ||||
| 	default BUSYBOX_DEFAULT_HUSH_FUNCTIONS | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  Enable support for shell functions in hush. +800 bytes. | ||||
|  | ||||
| @@ -274,7 +333,7 @@ config BUSYBOX_CONFIG_HUSH_LOCAL | ||||
| config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT | ||||
| 	bool "Pseudorandom generator and $RANDOM variable" | ||||
| 	default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  Enable pseudorandom generator and dynamic variable "$RANDOM". | ||||
| 	  Each read of "$RANDOM" will generate a new pseudorandom value. | ||||
| @@ -282,14 +341,14 @@ config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT | ||||
| config BUSYBOX_CONFIG_HUSH_EXPORT_N | ||||
| 	bool "Support 'export -n' option" | ||||
| 	default BUSYBOX_DEFAULT_HUSH_EXPORT_N | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  export -n unexports variables. It is a bash extension. | ||||
|  | ||||
| config BUSYBOX_CONFIG_HUSH_MODE_X | ||||
| 	bool "Support 'hush -x' option and 'set -x' command" | ||||
| 	default BUSYBOX_DEFAULT_HUSH_MODE_X | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  This instructs hush to print commands before execution. | ||||
| 	  Adds ~300 bytes. | ||||
| @@ -302,72 +361,17 @@ config BUSYBOX_CONFIG_MSH | ||||
| 	  msh is deprecated and will be removed, please migrate to hush. | ||||
|  | ||||
|  | ||||
|  | ||||
| choice | ||||
| 	prompt "Choose which shell is aliased to 'sh' name" | ||||
| 	default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH | ||||
| 	help | ||||
| 	  Choose which shell you want to be executed by 'sh' alias. | ||||
| 	  The ash shell is the most bash compatible and full featured one. | ||||
|  | ||||
| # note: cannot use "select ASH" here, it breaks "make allnoconfig" | ||||
| config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	bool "ash" | ||||
| 	depends on !BUSYBOX_CONFIG_NOMMU | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	bool "hush" | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE | ||||
| 	bool "none" | ||||
|  | ||||
| endchoice | ||||
|  | ||||
| choice | ||||
| 	prompt "Choose which shell is aliased to 'bash' name" | ||||
| 	default BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE | ||||
| 	help | ||||
| 	  Choose which shell you want to be executed by 'bash' alias. | ||||
| 	  The ash shell is the most bash compatible and full featured one. | ||||
|  | ||||
| 	  Note that selecting this option does not switch on any bash | ||||
| 	  compatibility code. It merely makes it possible to install | ||||
| 	  /bin/bash (sym)link and run scripts which start with | ||||
| 	  #!/bin/bash line. | ||||
|  | ||||
| 	  Many systems use it in scripts which use bash-specific features, | ||||
| 	  even simple ones like $RANDOM. Without this option, busybox | ||||
| 	  can't be used for running them because it won't recongnize | ||||
| 	  "bash" as a supported applet name. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_BASH_IS_ASH | ||||
| 	depends on BUSYBOX_CONFIG_ASH | ||||
| 	bool "ash" | ||||
| 	depends on !BUSYBOX_CONFIG_NOMMU | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_BASH_IS_HUSH | ||||
| 	depends on BUSYBOX_CONFIG_HUSH | ||||
| 	bool "hush" | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE | ||||
| 	bool "none" | ||||
|  | ||||
| endchoice | ||||
|  | ||||
|  | ||||
| config BUSYBOX_CONFIG_SH_MATH_SUPPORT | ||||
| config BUSYBOX_CONFIG_FEATURE_SH_MATH | ||||
| 	bool "POSIX math support" | ||||
| 	default BUSYBOX_DEFAULT_SH_MATH_SUPPORT | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_SH_MATH | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  Enable math support in the shell via $((...)) syntax. | ||||
|  | ||||
| config BUSYBOX_CONFIG_SH_MATH_SUPPORT_64 | ||||
| config BUSYBOX_CONFIG_FEATURE_SH_MATH_64 | ||||
| 	bool "Extend POSIX math support to 64 bit" | ||||
| 	default BUSYBOX_DEFAULT_SH_MATH_SUPPORT_64 | ||||
| 	depends on BUSYBOX_CONFIG_SH_MATH_SUPPORT | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_SH_MATH_64 | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_SH_MATH | ||||
| 	help | ||||
| 	  Enable 64-bit math support in the shell. This will make the shell | ||||
| 	  slightly larger, but will allow computation with very large numbers. | ||||
| @@ -376,14 +380,14 @@ config BUSYBOX_CONFIG_SH_MATH_SUPPORT_64 | ||||
| config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET | ||||
| 	bool "Hide message on interactive shell startup" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  Remove the busybox introduction when starting a shell. | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE | ||||
| 	bool "Standalone shell" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE | ||||
| 	depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  This option causes busybox shells to use busybox applets | ||||
| 	  in preference to executables in the PATH whenever possible. For | ||||
| @@ -416,7 +420,7 @@ config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE | ||||
| config BUSYBOX_CONFIG_FEATURE_SH_NOFORK | ||||
| 	bool "Run 'nofork' applets directly" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK | ||||
| 	depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  This option causes busybox shells to not execute typical | ||||
| 	  fork/exec/wait sequence, but call <applet>_main directly, | ||||
| @@ -434,7 +438,7 @@ config BUSYBOX_CONFIG_FEATURE_SH_NOFORK | ||||
| config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE | ||||
| 	bool "Use $HISTFILESIZE" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE | ||||
| 	depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH | ||||
| 	depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_ASH || BUSYBOX_CONFIG_BASH_IS_ASH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH | ||||
| 	help | ||||
| 	  This option makes busybox shells to use $HISTFILESIZE variable | ||||
| 	  to set shell history size. Note that its max value is capped | ||||
|   | ||||
| @@ -47,7 +47,6 @@ config BUSYBOX_CONFIG_LOGGER | ||||
| config BUSYBOX_CONFIG_LOGREAD | ||||
| 	bool "logread" | ||||
| 	default BUSYBOX_DEFAULT_LOGREAD | ||||
| 	depends on BUSYBOX_CONFIG_FEATURE_IPC_SYSLOG | ||||
| 	help | ||||
| 	  If you enabled Circular Buffer support, you almost | ||||
| 	  certainly want to enable this feature as well. This | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -189,6 +189,15 @@ config BUSYBOX_CONFIG_FEATURE_VOLUMEID_SYSV | ||||
| 	  TODO | ||||
|  | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UBIFS | ||||
| 	bool "UBIFS filesystem" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UBIFS | ||||
| 	depends on BUSYBOX_CONFIG_VOLUMEID | ||||
| 	help | ||||
| 	  UBIFS (Unsorted Block Image File System) is a file | ||||
| 	  system for use with raw flash memory media. | ||||
|  | ||||
|  | ||||
| config BUSYBOX_CONFIG_FEATURE_VOLUMEID_UDF | ||||
| 	bool "udf filesystem" | ||||
| 	default BUSYBOX_DEFAULT_FEATURE_VOLUMEID_UDF | ||||
|   | ||||
| @@ -1,37 +0,0 @@ | ||||
| From 7cef4817d6d6d61a1166ed7dfc13537b95c65970 Mon Sep 17 00:00:00 2001 | ||||
| From: Denys Vlasenko <vda.linux@googlemail.com> | ||||
| Date: Thu, 15 Sep 2016 13:20:51 +0200 | ||||
| Subject: [PATCH] libbb:/send_to_from: do not require that "to" should have the | ||||
|  same AF. Closes 9146 | ||||
|  | ||||
| Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> | ||||
| --- | ||||
|  libbb/udp_io.c | 10 ++++++++-- | ||||
|  1 file changed, 8 insertions(+), 2 deletions(-) | ||||
|  | ||||
| --- a/libbb/udp_io.c | ||||
| +++ b/libbb/udp_io.c | ||||
| @@ -70,7 +70,13 @@ send_to_from(int fd, void *buf, size_t l | ||||
|  	msg.msg_flags = flags; | ||||
|   | ||||
|  	cmsgptr = CMSG_FIRSTHDR(&msg); | ||||
| -	if (to->sa_family == AF_INET && from->sa_family == AF_INET) { | ||||
| +	/* | ||||
| +	 * Users report that to->sa_family can be AF_INET6 too, | ||||
| +	 * if "to" was acquired by recv_from_to(). IOW: recv_from_to() | ||||
| +	 * was seen showing IPv6 "from" even when the destination | ||||
| +	 * of received packet (our local address) was IPv4. | ||||
| +	 */ | ||||
| +	if (/* to->sa_family == AF_INET && */ from->sa_family == AF_INET) { | ||||
|  		struct in_pktinfo *pktptr; | ||||
|  		cmsgptr->cmsg_level = IPPROTO_IP; | ||||
|  		cmsgptr->cmsg_type = IP_PKTINFO; | ||||
| @@ -86,7 +92,7 @@ send_to_from(int fd, void *buf, size_t l | ||||
|  		pktptr->ipi_spec_dst = ((struct sockaddr_in*)from)->sin_addr; | ||||
|  	} | ||||
|  # if ENABLE_FEATURE_IPV6 && defined(IPV6_PKTINFO) | ||||
| -	else if (to->sa_family == AF_INET6 && from->sa_family == AF_INET6) { | ||||
| +	else if (/* to->sa_family == AF_INET6 && */ from->sa_family == AF_INET6) { | ||||
|  		struct in6_pktinfo *pktptr; | ||||
|  		cmsgptr->cmsg_level = IPPROTO_IPV6; | ||||
|  		cmsgptr->cmsg_type = IPV6_PKTINFO; | ||||
| @@ -1,20 +0,0 @@ | ||||
| --- a/scripts/trylink | ||||
| +++ b/scripts/trylink | ||||
| @@ -46,7 +46,7 @@ try() { | ||||
|  } | ||||
|   | ||||
|  check_cc() { | ||||
| -    local tempname="$(mktemp)" | ||||
| +    local tempname="$(mktemp /tmp/tmp.XXXXXXXXXX)" | ||||
|      local r | ||||
|      echo "int main(int argc,char**argv){return argv?argc:0;}" >"$tempname".c | ||||
|      # Can use "-o /dev/null", but older gcc tend to *unlink it* on failure! :( | ||||
| @@ -61,7 +61,7 @@ check_cc() { | ||||
|  } | ||||
|   | ||||
|  check_libc_is_glibc() { | ||||
| -    local tempname="$(mktemp)" | ||||
| +    local tempname="$(mktemp /tmp/tmp.XXXXXXXXXX)" | ||||
|      local r | ||||
|      echo "\ | ||||
|  	#include <stdlib.h> | ||||
| @@ -1,6 +1,6 @@ | ||||
| --- a/util-linux/mount.c | ||||
| +++ b/util-linux/mount.c | ||||
| @@ -237,9 +237,6 @@ | ||||
| @@ -245,9 +245,6 @@ | ||||
|  #if ENABLE_FEATURE_MOUNT_NFS | ||||
|  /* This is just a warning of a common mistake.  Possibly this should be a | ||||
|   * uclibc faq entry rather than in busybox... */ | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| --- a/networking/udhcp/dhcpc.c | ||||
| +++ b/networking/udhcp/dhcpc.c | ||||
| @@ -697,6 +697,7 @@ static int bcast_or_ucast(struct dhcp_pa | ||||
| @@ -704,6 +704,7 @@ static int bcast_or_ucast(struct dhcp_pa | ||||
|  static NOINLINE int send_discover(uint32_t xid, uint32_t requested) | ||||
|  { | ||||
|  	struct dhcp_packet packet; | ||||
| @@ -8,7 +8,7 @@ | ||||
|   | ||||
|  	/* Fill in: op, htype, hlen, cookie, chaddr fields, | ||||
|  	 * random xid field (we override it below), | ||||
| @@ -714,6 +715,7 @@ static NOINLINE int send_discover(uint32 | ||||
| @@ -721,6 +722,7 @@ static NOINLINE int send_discover(uint32 | ||||
|  	 */ | ||||
|  	add_client_options(&packet); | ||||
|   | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| --- a/networking/udhcp/dhcpc.c | ||||
| +++ b/networking/udhcp/dhcpc.c | ||||
| @@ -1422,6 +1422,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c | ||||
| @@ -1439,6 +1439,12 @@ int udhcpc_main(int argc UNUSED_PARAM, c | ||||
|  		/* silence "uninitialized!" warning */ | ||||
|  		unsigned timestamp_before_wait = timestamp_before_wait; | ||||
|   | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| --- a/networking/udhcp/dhcpc.c | ||||
| +++ b/networking/udhcp/dhcpc.c | ||||
| @@ -1103,7 +1103,6 @@ static void perform_renew(void) | ||||
| @@ -1110,7 +1110,6 @@ static void perform_renew(void) | ||||
|  		state = RENEW_REQUESTED; | ||||
|  		break; | ||||
|  	case RENEW_REQUESTED: /* impatient are we? fine, square 1 */ | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| --- a/networking/telnetd.c | ||||
| +++ b/networking/telnetd.c | ||||
| @@ -333,6 +333,7 @@ make_new_session( | ||||
| @@ -497,6 +497,7 @@ make_new_session( | ||||
|   | ||||
|  	/* Restore default signal handling ASAP */ | ||||
|  	bb_signals((1 << SIGCHLD) + (1 << SIGPIPE), SIG_DFL); | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| --- a/coreutils/date.c | ||||
| +++ b/coreutils/date.c | ||||
| @@ -123,6 +123,7 @@ | ||||
| @@ -122,6 +122,7 @@ | ||||
|  //usage:	IF_FEATURE_DATE_ISOFMT( | ||||
|  //usage:     "\n	-D FMT		Use FMT for -d TIME conversion" | ||||
|  //usage:	) | ||||
| @@ -8,7 +8,7 @@ | ||||
|  //usage:     "\n" | ||||
|  //usage:     "\nRecognized TIME formats:" | ||||
|  //usage:     "\n	hh:mm[:ss]" | ||||
| @@ -139,9 +140,8 @@ | ||||
| @@ -138,9 +139,8 @@ | ||||
|   | ||||
|  #include "libbb.h" | ||||
|  #include "common_bufsiz.h" | ||||
| @@ -20,7 +20,7 @@ | ||||
|   | ||||
|  enum { | ||||
|  	OPT_RFC2822   = (1 << 0), /* R */ | ||||
| @@ -149,8 +149,9 @@ enum { | ||||
| @@ -148,8 +148,9 @@ enum { | ||||
|  	OPT_UTC       = (1 << 2), /* u */ | ||||
|  	OPT_DATE      = (1 << 3), /* d */ | ||||
|  	OPT_REFERENCE = (1 << 4), /* r */ | ||||
| @@ -32,7 +32,7 @@ | ||||
|  }; | ||||
|   | ||||
|  static void maybe_set_utc(int opt) | ||||
| @@ -168,12 +169,15 @@ static const char date_longopts[] ALIGN1 | ||||
| @@ -167,12 +168,15 @@ static const char date_longopts[] ALIGN1 | ||||
|  	/*	"universal\0" No_argument       "u" */ | ||||
|  		"date\0"      Required_argument "d" | ||||
|  		"reference\0" Required_argument "r" | ||||
| @@ -48,7 +48,7 @@ | ||||
|  	struct timespec ts; | ||||
|  	struct tm tm_time; | ||||
|  	char buf_fmt_dt2str[64]; | ||||
| @@ -188,7 +192,7 @@ int date_main(int argc UNUSED_PARAM, cha | ||||
| @@ -187,7 +191,7 @@ int date_main(int argc UNUSED_PARAM, cha | ||||
|  	opt_complementary = "d--s:s--d" | ||||
|  		IF_FEATURE_DATE_ISOFMT(":R--I:I--R"); | ||||
|  	IF_LONG_OPTS(applet_long_options = date_longopts;) | ||||
| @@ -57,7 +57,7 @@ | ||||
|  			IF_FEATURE_DATE_ISOFMT("I::D:"), | ||||
|  			&date_str, &date_str, &filename | ||||
|  			IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt)); | ||||
| @@ -245,6 +249,31 @@ int date_main(int argc UNUSED_PARAM, cha | ||||
| @@ -244,6 +248,31 @@ int date_main(int argc UNUSED_PARAM, cha | ||||
|  	if (*argv) | ||||
|  		bb_show_usage(); | ||||
|   | ||||
|   | ||||
| @@ -1,100 +0,0 @@ | ||||
| From a843f09a4d4428cf11ca02307e60058251b05743 Mon Sep 17 00:00:00 2001 | ||||
| From: Hauke Mehrtens <hauke@hauke-m.de> | ||||
| Date: Fri, 16 Sep 2016 21:52:03 +0200 | ||||
| Subject: [PATCH] libnetlink: fix alignment of netlink messages | ||||
|  | ||||
| An padding to align a message should not only be added between | ||||
| different attributes of a netlink message, but also at the end of the | ||||
| message to pad it to the correct size. | ||||
|  | ||||
| Without this patch the following command does not work and returns an | ||||
| error code: | ||||
| ip link add type nlmon | ||||
|  | ||||
| Without this ip from busybox sends this: | ||||
| sendmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base={{len=45, type=0x10 /* NLMSG_??? */, flags=NLM_F_REQUEST|NLM_F_ACK|0x600, seq=1474057401, pid=0}, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\22\0\t\0\1nlmon"}, iov_len=45}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 45 | ||||
| return value: 2 | ||||
|  | ||||
| The normal ip utile from iproute2 sends this: | ||||
| sendmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base={{len=48, type=0x10 /* NLMSG_??? */, flags=NLM_F_REQUEST|NLM_F_ACK|0x600, seq=1473716938, pid=0}, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\22\0\t\0\1nlmon\0\0\0"}, iov_len=48}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 48 | ||||
| return value: 0 | ||||
|  | ||||
| With this patch ip from busybox sends this: | ||||
| sendmsg(3, {msg_name={sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}, msg_namelen=12, msg_iov=[{iov_base={{len=48, type=0x10 /* NLMSG_??? */, flags=NLM_F_REQUEST|NLM_F_ACK|0x600, seq=1473716908, pid=0}, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\22\0\t\0\1nlmon\0\0\0"}, iov_len=48}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 48 | ||||
| return value: 0 | ||||
|  | ||||
| Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> | ||||
| --- | ||||
|  networking/libiproute/libnetlink.c | 16 ++++++++-------- | ||||
|  1 file changed, 8 insertions(+), 8 deletions(-) | ||||
|  | ||||
| --- a/networking/libiproute/libnetlink.c | ||||
| +++ b/networking/libiproute/libnetlink.c | ||||
| @@ -338,14 +338,14 @@ int FAST_FUNC addattr32(struct nlmsghdr | ||||
|  	int len = RTA_LENGTH(4); | ||||
|  	struct rtattr *rta; | ||||
|   | ||||
| -	if ((int)(NLMSG_ALIGN(n->nlmsg_len) + len) > maxlen) { | ||||
| +	if ((int)(NLMSG_ALIGN(n->nlmsg_len + len)) > maxlen) { | ||||
|  		return -1; | ||||
|  	} | ||||
|  	rta = (struct rtattr*)(((char*)n) + NLMSG_ALIGN(n->nlmsg_len)); | ||||
|  	rta->rta_type = type; | ||||
|  	rta->rta_len = len; | ||||
|  	move_to_unaligned32(RTA_DATA(rta), data); | ||||
| -	n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + len; | ||||
| +	n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len + len); | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| @@ -354,14 +354,14 @@ int FAST_FUNC addattr_l(struct nlmsghdr | ||||
|  	int len = RTA_LENGTH(alen); | ||||
|  	struct rtattr *rta; | ||||
|   | ||||
| -	if ((int)(NLMSG_ALIGN(n->nlmsg_len) + len) > maxlen) { | ||||
| +	if ((int)(NLMSG_ALIGN(n->nlmsg_len + len)) > maxlen) { | ||||
|  		return -1; | ||||
|  	} | ||||
|  	rta = (struct rtattr*)(((char*)n) + NLMSG_ALIGN(n->nlmsg_len)); | ||||
|  	rta->rta_type = type; | ||||
|  	rta->rta_len = len; | ||||
|  	memcpy(RTA_DATA(rta), data, alen); | ||||
| -	n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + len; | ||||
| +	n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len + len); | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| @@ -370,14 +370,14 @@ int FAST_FUNC rta_addattr32(struct rtatt | ||||
|  	int len = RTA_LENGTH(4); | ||||
|  	struct rtattr *subrta; | ||||
|   | ||||
| -	if (RTA_ALIGN(rta->rta_len) + len > maxlen) { | ||||
| +	if (RTA_ALIGN(rta->rta_len + len) > maxlen) { | ||||
|  		return -1; | ||||
|  	} | ||||
|  	subrta = (struct rtattr*)(((char*)rta) + RTA_ALIGN(rta->rta_len)); | ||||
|  	subrta->rta_type = type; | ||||
|  	subrta->rta_len = len; | ||||
|  	move_to_unaligned32(RTA_DATA(subrta), data); | ||||
| -	rta->rta_len = NLMSG_ALIGN(rta->rta_len) + len; | ||||
| +	rta->rta_len = NLMSG_ALIGN(rta->rta_len + len); | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| @@ -386,14 +386,14 @@ int FAST_FUNC rta_addattr_l(struct rtatt | ||||
|  	struct rtattr *subrta; | ||||
|  	int len = RTA_LENGTH(alen); | ||||
|   | ||||
| -	if (RTA_ALIGN(rta->rta_len) + len > maxlen) { | ||||
| +	if (RTA_ALIGN(rta->rta_len + len) > maxlen) { | ||||
|  		return -1; | ||||
|  	} | ||||
|  	subrta = (struct rtattr*)(((char*)rta) + RTA_ALIGN(rta->rta_len)); | ||||
|  	subrta->rta_type = type; | ||||
|  	subrta->rta_len = len; | ||||
|  	memcpy(RTA_DATA(subrta), data, alen); | ||||
| -	rta->rta_len = NLMSG_ALIGN(rta->rta_len) + len; | ||||
| +	rta->rta_len = NLMSG_ALIGN(rta->rta_len + len); | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| @@ -1,486 +0,0 @@ | ||||
| From 485fcc89b99eae9cc7501eaff344b104e52ab7bf Mon Sep 17 00:00:00 2001 | ||||
| From: Jo-Philipp Wich <jo@mein.io> | ||||
| Date: Mon, 26 Sep 2016 17:48:22 +0200 | ||||
| Subject: [PATCH] iproute: properly support high routing table IDs | ||||
|  | ||||
| The Linux kernel uses two distinct fields to denote the routing table ID in | ||||
| use by network routes; the 8 bit `rtm_table` member of `struct rtmsg` and the | ||||
| 32 bit `RTA_TABLE` netlink attribute. | ||||
|  | ||||
| If a routing table ID is larger than 255, the `RT_TABLE` attribute must be used | ||||
| and the `rtm_table` field has to be set to the special `RT_TABLE_UNSPEC` value. | ||||
|  | ||||
| This commit ... | ||||
|  - switches the *_n2a() and *_a2n() functions of rt_names.c to use dynamically | ||||
|    sized, name-sorted arrays instead of fixed arrays limited to 1024 slots in | ||||
|    order to support IDs up to 65535 | ||||
|  - adds proper handling of high table IDs to iprule.c and iproute.c when | ||||
|    adding, removing and dumping ip rules and network routes | ||||
|  | ||||
| After this change, the Busybox ip applet fully supports IP rules with high ID | ||||
| numbers, using the same logic as the full iproute2. | ||||
|  | ||||
| Signed-off-by: Jo-Philipp Wich <jo@mein.io> | ||||
| --- | ||||
|  networking/libiproute/iproute.c  |  75 ++++++++------ | ||||
|  networking/libiproute/iprule.c   |   4 +- | ||||
|  networking/libiproute/rt_names.c | 204 +++++++++++++++++++++++---------------- | ||||
|  3 files changed, 169 insertions(+), 114 deletions(-) | ||||
|  | ||||
| --- a/networking/libiproute/iproute.c | ||||
| +++ b/networking/libiproute/iproute.c | ||||
| @@ -66,6 +66,7 @@ static int FAST_FUNC print_route(const s | ||||
|  	inet_prefix dst; | ||||
|  	inet_prefix src; | ||||
|  	int host_len = -1; | ||||
| +	uint32_t rtable; | ||||
|   | ||||
|  	if (n->nlmsg_type != RTM_NEWROUTE && n->nlmsg_type != RTM_DELROUTE) { | ||||
|  		fprintf(stderr, "Not a route: %08x %08x %08x\n", | ||||
| @@ -83,34 +84,6 @@ static int FAST_FUNC print_route(const s | ||||
|  	else if (r->rtm_family == AF_INET) | ||||
|  		host_len = 32; | ||||
|   | ||||
| -	if (r->rtm_family == AF_INET6) { | ||||
| -		if (G_filter.tb) { | ||||
| -			if (G_filter.tb < 0) { | ||||
| -				if (!(r->rtm_flags & RTM_F_CLONED)) { | ||||
| -					return 0; | ||||
| -				} | ||||
| -			} else { | ||||
| -				if (r->rtm_flags & RTM_F_CLONED) { | ||||
| -					return 0; | ||||
| -				} | ||||
| -				if (G_filter.tb == RT_TABLE_LOCAL) { | ||||
| -					if (r->rtm_type != RTN_LOCAL) { | ||||
| -						return 0; | ||||
| -					} | ||||
| -				} else if (G_filter.tb == RT_TABLE_MAIN) { | ||||
| -					if (r->rtm_type == RTN_LOCAL) { | ||||
| -						return 0; | ||||
| -					} | ||||
| -				} else { | ||||
| -					return 0; | ||||
| -				} | ||||
| -			} | ||||
| -		} | ||||
| -	} else { | ||||
| -		if (G_filter.tb > 0 && G_filter.tb != r->rtm_table) { | ||||
| -			return 0; | ||||
| -		} | ||||
| -	} | ||||
|  	if (G_filter.rdst.family | ||||
|  	 && (r->rtm_family != G_filter.rdst.family || G_filter.rdst.bitlen > r->rtm_dst_len) | ||||
|  	) { | ||||
| @@ -141,6 +114,37 @@ static int FAST_FUNC print_route(const s | ||||
|  	memset(&dst, 0, sizeof(dst)); | ||||
|  	parse_rtattr(tb, RTA_MAX, RTM_RTA(r), len); | ||||
|   | ||||
| +	rtable = tb[RTA_TABLE] ? *(uint32_t*)RTA_DATA(tb[RTA_TABLE]) : r->rtm_table; | ||||
| + | ||||
| +	if (G_filter.tb) { | ||||
| +		if (r->rtm_family == AF_INET6) { | ||||
| +			if (G_filter.tb < 0) { | ||||
| +				if (!(r->rtm_flags & RTM_F_CLONED)) { | ||||
| +					return 0; | ||||
| +				} | ||||
| +			} else { | ||||
| +				if (r->rtm_flags & RTM_F_CLONED) { | ||||
| +					return 0; | ||||
| +				} | ||||
| +				if (G_filter.tb == RT_TABLE_LOCAL) { | ||||
| +					if (r->rtm_type != RTN_LOCAL) { | ||||
| +						return 0; | ||||
| +					} | ||||
| +				} else if (G_filter.tb == RT_TABLE_MAIN) { | ||||
| +					if (r->rtm_type == RTN_LOCAL) { | ||||
| +						return 0; | ||||
| +					} | ||||
| +				} else if (G_filter.tb != rtable) { | ||||
| +					return 0; | ||||
| +				} | ||||
| +			} | ||||
| +		} else { | ||||
| +			if (G_filter.tb != rtable) { | ||||
| +				return 0; | ||||
| +			} | ||||
| +		} | ||||
| +	} | ||||
| + | ||||
|  	if (tb[RTA_SRC]) { | ||||
|  		src.bitlen = r->rtm_src_len; | ||||
|  		src.bytelen = (r->rtm_family == AF_INET6 ? 16 : 4); | ||||
| @@ -349,7 +353,9 @@ IF_FEATURE_IP_RULE(ARG_table,) | ||||
|  	smalluint ok = 0; | ||||
|  	smalluint scope_ok = 0; | ||||
|  	int arg; | ||||
| - | ||||
| +#if ENABLE_FEATURE_IP_RULE | ||||
| +	uint32_t rtable = 0; | ||||
| +#endif | ||||
|  	memset(&req, 0, sizeof(req)); | ||||
|   | ||||
|  	req.n.nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg)); | ||||
| @@ -419,7 +425,7 @@ IF_FEATURE_IP_RULE(ARG_table,) | ||||
|  			NEXT_ARG(); | ||||
|  			if (rtnl_rttable_a2n(&tid, *argv)) | ||||
|  				invarg_1_to_2(*argv, "table"); | ||||
| -			req.r.rtm_table = tid; | ||||
| +			rtable = tid; | ||||
|  #endif | ||||
|  		} else if (arg == ARG_dev || arg == ARG_oif) { | ||||
|  			NEXT_ARG(); | ||||
| @@ -475,6 +481,15 @@ IF_FEATURE_IP_RULE(ARG_table,) | ||||
|  		} | ||||
|  	} | ||||
|   | ||||
| +#if ENABLE_FEATURE_IP_RULE | ||||
| +	if (rtable >= 256) { | ||||
| +		addattr32(&req.n, sizeof(req), RTA_TABLE, rtable); | ||||
| +		req.r.rtm_table = RT_TABLE_UNSPEC; | ||||
| +	} else if (rtable > 0) { | ||||
| +		req.r.rtm_table = rtable; | ||||
| +	} | ||||
| +#endif | ||||
| + | ||||
|  	if (mxrta->rta_len > RTA_LENGTH(0)) { | ||||
|  		if (mxlock) { | ||||
|  			rta_addattr32(mxrta, sizeof(mxbuf), RTAX_LOCK, mxlock); | ||||
| --- a/networking/libiproute/iprule.c | ||||
| +++ b/networking/libiproute/iprule.c | ||||
| @@ -114,7 +114,9 @@ static int FAST_FUNC print_rule(const st | ||||
|  		printf("iif %s ", (char*)RTA_DATA(tb[RTA_IIF])); | ||||
|  	} | ||||
|   | ||||
| -	if (r->rtm_table) | ||||
| +	if (tb[RTA_TABLE]) | ||||
| +		printf("lookup %s ", rtnl_rttable_n2a(*(uint32_t*)RTA_DATA(tb[RTA_TABLE]))); | ||||
| +	else if (r->rtm_table) | ||||
|  		printf("lookup %s ", rtnl_rttable_n2a(r->rtm_table)); | ||||
|   | ||||
|  	if (tb[RTA_FLOW]) { | ||||
| --- a/networking/libiproute/rt_names.c | ||||
| +++ b/networking/libiproute/rt_names.c | ||||
| @@ -11,21 +11,26 @@ | ||||
|  #include "rt_names.h" | ||||
|   | ||||
|  #define CONFDIR          CONFIG_FEATURE_IP_ROUTE_DIR | ||||
| +#define RT_TABLE_MAX	65535 | ||||
| + | ||||
| +struct rtnl_tab_entry { | ||||
| +	unsigned int id; | ||||
| +	const char *name; | ||||
| +}; | ||||
|   | ||||
|  typedef struct rtnl_tab_t { | ||||
| -	const char *cached_str; | ||||
| -	unsigned cached_result; | ||||
| -	/* upstream version switched to a hash table and removed | ||||
| -	 * id < 256 limit. For now bbox bumps this array size from 256 | ||||
| -	 * to 1024. If you plan to change this to a hash table, | ||||
| -	 * consider merging several hash tables we have (for example, | ||||
| -	 * awk has resizable one! | ||||
| -	 */ | ||||
| -#define RT_TABLE_MAX 1023 | ||||
| -	const char *tab[RT_TABLE_MAX+1]; | ||||
| +	struct rtnl_tab_entry *tab; | ||||
| +	size_t length; | ||||
|  } rtnl_tab_t; | ||||
|   | ||||
| -static void rtnl_tab_initialize(const char *file, const char **tab) | ||||
| +static int tabcmp(const void *p1, const void *p2) | ||||
| +{ | ||||
| +	const struct rtnl_tab_entry *e1 = p1; | ||||
| +	const struct rtnl_tab_entry *e2 = p2; | ||||
| +	return strcmp(e1->name, e2->name); | ||||
| +} | ||||
| + | ||||
| +static void rtnl_tab_initialize(const char *file, rtnl_tab_t *tab) | ||||
|  { | ||||
|  	char *token[2]; | ||||
|  	char fullname[sizeof(CONFDIR"/rt_dsfield") + 8]; | ||||
| @@ -40,34 +45,42 @@ static void rtnl_tab_initialize(const ch | ||||
|  				file, parser->lineno); | ||||
|  			break; | ||||
|  		} | ||||
| -		tab[id] = xstrdup(token[1]); | ||||
| + | ||||
| +		tab->tab = xrealloc(tab->tab, (tab->length + 1) * sizeof(*tab->tab)); | ||||
| +		tab->tab[tab->length].id = id; | ||||
| +		tab->tab[tab->length].name = xstrdup(token[1]); | ||||
| +		tab->length++; | ||||
|  	} | ||||
|  	config_close(parser); | ||||
| +	qsort(tab->tab, tab->length, sizeof(*tab->tab), tabcmp); | ||||
|  } | ||||
|   | ||||
|  static int rtnl_a2n(rtnl_tab_t *tab, uint32_t *id, const char *arg, int base) | ||||
|  { | ||||
| -	unsigned i; | ||||
| - | ||||
| -	if (tab->cached_str && strcmp(tab->cached_str, arg) == 0) { | ||||
| -		*id = tab->cached_result; | ||||
| -		return 0; | ||||
| -	} | ||||
| +	int delta; | ||||
| +	ssize_t l = 0; | ||||
| +	ssize_t r = tab->length - 1; | ||||
| +	ssize_t m; | ||||
| +	uint32_t i; | ||||
| + | ||||
| +	while (l <= r) { | ||||
| +		m = l + (r - l) / 2; | ||||
| +		delta = strcmp(tab->tab[m].name, arg); | ||||
|   | ||||
| -	for (i = 0; i <= RT_TABLE_MAX; i++) { | ||||
| -		if (tab->tab[i] | ||||
| -		 && strcmp(tab->tab[i], arg) == 0 | ||||
| -		) { | ||||
| -			tab->cached_str = tab->tab[i]; | ||||
| -			tab->cached_result = i; | ||||
| -			*id = i; | ||||
| +		if (delta == 0) { | ||||
| +			*id = tab->tab[m].id; | ||||
|  			return 0; | ||||
| +		} else if (delta < 0) { | ||||
| +			l = m + 1; | ||||
| +		} else { | ||||
| +			r = m - 1; | ||||
|  		} | ||||
|  	} | ||||
|   | ||||
|  	i = bb_strtou(arg, NULL, base); | ||||
|  	if (i > RT_TABLE_MAX) | ||||
|  		return -1; | ||||
| + | ||||
|  	*id = i; | ||||
|  	return 0; | ||||
|  } | ||||
| @@ -77,40 +90,39 @@ static rtnl_tab_t *rtnl_rtprot_tab; | ||||
|   | ||||
|  static void rtnl_rtprot_initialize(void) | ||||
|  { | ||||
| -	static const char *const init_tab[] = { | ||||
| -		"none", | ||||
| -		"redirect", | ||||
| -		"kernel", | ||||
| -		"boot", | ||||
| -		"static", | ||||
| -		NULL, | ||||
| -		NULL, | ||||
| -		NULL, | ||||
| -		"gated", | ||||
| -		"ra", | ||||
| -		"mrt", | ||||
| -		"zebra", | ||||
| -		"bird", | ||||
| +	static const struct rtnl_tab_entry init_tab[] = { | ||||
| +		{  0, "none"     }, | ||||
| +		{  1, "redirect" }, | ||||
| +		{  2, "kernel"   }, | ||||
| +		{  3, "boot"     }, | ||||
| +		{  4, "static"   }, | ||||
| +		{  8, "gated"    }, | ||||
| +		{  9, "ra"       }, | ||||
| +		{ 10, "mrt"      }, | ||||
| +		{ 11, "zebra"    }, | ||||
| +		{ 12, "bird"     } | ||||
|  	}; | ||||
|   | ||||
|  	if (rtnl_rtprot_tab) | ||||
|  		return; | ||||
|  	rtnl_rtprot_tab = xzalloc(sizeof(*rtnl_rtprot_tab)); | ||||
| +	rtnl_rtprot_tab->tab = xzalloc(sizeof(init_tab)); | ||||
| +	rtnl_rtprot_tab->length = sizeof(init_tab) / sizeof(init_tab[0]); | ||||
|  	memcpy(rtnl_rtprot_tab->tab, init_tab, sizeof(init_tab)); | ||||
| -	rtnl_tab_initialize("protos", rtnl_rtprot_tab->tab); | ||||
| +	rtnl_tab_initialize("protos", rtnl_rtprot_tab); | ||||
|  } | ||||
|   | ||||
|  #if 0 /* UNUSED */ | ||||
|  const char* FAST_FUNC rtnl_rtprot_n2a(int id) | ||||
|  { | ||||
| -	if (id < 0 || id > RT_TABLE_MAX) { | ||||
| -		return itoa(id); | ||||
| -	} | ||||
| +	size_t i; | ||||
|   | ||||
|  	rtnl_rtprot_initialize(); | ||||
|   | ||||
| -	if (rtnl_rtprot_tab->tab[id]) | ||||
| -		return rtnl_rtprot_tab->tab[id]; | ||||
| +	for (i = 0; i < rtnl_rtprot_tab->length; i++) | ||||
| +		if (rtnl_rtprot_tab->tab[i].id == id) | ||||
| +			return rtnl_rtprot_tab->tab[i].name; | ||||
| + | ||||
|  	return itoa(id); | ||||
|  } | ||||
|  #endif | ||||
| @@ -126,27 +138,33 @@ static rtnl_tab_t *rtnl_rtscope_tab; | ||||
|   | ||||
|  static void rtnl_rtscope_initialize(void) | ||||
|  { | ||||
| +	static const struct rtnl_tab_entry init_tab[] = { | ||||
| +		{   0, "global"  }, | ||||
| +		{ 200, "site"    }, | ||||
| +		{ 253, "link"    }, | ||||
| +		{ 254, "host"    }, | ||||
| +		{ 255, "nowhere" } | ||||
| +	}; | ||||
| + | ||||
|  	if (rtnl_rtscope_tab) | ||||
|  		return; | ||||
|  	rtnl_rtscope_tab = xzalloc(sizeof(*rtnl_rtscope_tab)); | ||||
| -	rtnl_rtscope_tab->tab[0] = "global"; | ||||
| -	rtnl_rtscope_tab->tab[255] = "nowhere"; | ||||
| -	rtnl_rtscope_tab->tab[254] = "host"; | ||||
| -	rtnl_rtscope_tab->tab[253] = "link"; | ||||
| -	rtnl_rtscope_tab->tab[200] = "site"; | ||||
| -	rtnl_tab_initialize("scopes", rtnl_rtscope_tab->tab); | ||||
| +	rtnl_rtscope_tab->tab = xzalloc(sizeof(init_tab)); | ||||
| +	rtnl_rtscope_tab->length = sizeof(init_tab) / sizeof(init_tab[0]); | ||||
| +	memcpy(rtnl_rtscope_tab->tab, init_tab, sizeof(init_tab)); | ||||
| +	rtnl_tab_initialize("scopes", rtnl_rtscope_tab); | ||||
|  } | ||||
|   | ||||
|  const char* FAST_FUNC rtnl_rtscope_n2a(int id) | ||||
|  { | ||||
| -	if (id < 0 || id > RT_TABLE_MAX) { | ||||
| -		return itoa(id); | ||||
| -	} | ||||
| +	size_t i; | ||||
|   | ||||
|  	rtnl_rtscope_initialize(); | ||||
|   | ||||
| -	if (rtnl_rtscope_tab->tab[id]) | ||||
| -		return rtnl_rtscope_tab->tab[id]; | ||||
| +	for (i = 0; i < rtnl_rtscope_tab->length; i++) | ||||
| +		if (rtnl_rtscope_tab->tab[i].id == id) | ||||
| +			return rtnl_rtscope_tab->tab[i].name; | ||||
| + | ||||
|  	return itoa(id); | ||||
|  } | ||||
|   | ||||
| @@ -161,10 +179,17 @@ static rtnl_tab_t *rtnl_rtrealm_tab; | ||||
|   | ||||
|  static void rtnl_rtrealm_initialize(void) | ||||
|  { | ||||
| -	if (rtnl_rtrealm_tab) return; | ||||
| +	static const struct rtnl_tab_entry init_tab[] = { | ||||
| +		{ 0, "unknown" } | ||||
| +	}; | ||||
| + | ||||
| +	if (rtnl_rtrealm_tab) | ||||
| +		return; | ||||
|  	rtnl_rtrealm_tab = xzalloc(sizeof(*rtnl_rtrealm_tab)); | ||||
| -	rtnl_rtrealm_tab->tab[0] = "unknown"; | ||||
| -	rtnl_tab_initialize("realms", rtnl_rtrealm_tab->tab); | ||||
| +	rtnl_rtrealm_tab->tab = xzalloc(sizeof(init_tab)); | ||||
| +	rtnl_rtrealm_tab->length = sizeof(init_tab) / sizeof(init_tab[0]); | ||||
| +	memcpy(rtnl_rtrealm_tab->tab, init_tab, sizeof(init_tab)); | ||||
| +	rtnl_tab_initialize("realms", rtnl_rtrealm_tab); | ||||
|  } | ||||
|   | ||||
|  int FAST_FUNC rtnl_rtrealm_a2n(uint32_t *id, char *arg) | ||||
| @@ -176,14 +201,14 @@ int FAST_FUNC rtnl_rtrealm_a2n(uint32_t | ||||
|  #if ENABLE_FEATURE_IP_RULE | ||||
|  const char* FAST_FUNC rtnl_rtrealm_n2a(int id) | ||||
|  { | ||||
| -	if (id < 0 || id > RT_TABLE_MAX) { | ||||
| -		return itoa(id); | ||||
| -	} | ||||
| +	size_t i; | ||||
|   | ||||
|  	rtnl_rtrealm_initialize(); | ||||
|   | ||||
| -	if (rtnl_rtrealm_tab->tab[id]) | ||||
| -		return rtnl_rtrealm_tab->tab[id]; | ||||
| +	for (i = 0; i < rtnl_rtrealm_tab->length; i++) | ||||
| +		if (rtnl_rtrealm_tab->tab[i].id == id) | ||||
| +			return rtnl_rtrealm_tab->tab[i].name; | ||||
| + | ||||
|  	return itoa(id); | ||||
|  } | ||||
|  #endif | ||||
| @@ -193,22 +218,29 @@ static rtnl_tab_t *rtnl_rtdsfield_tab; | ||||
|   | ||||
|  static void rtnl_rtdsfield_initialize(void) | ||||
|  { | ||||
| -	if (rtnl_rtdsfield_tab) return; | ||||
| +	static const struct rtnl_tab_entry init_tab[] = { | ||||
| +		{ 0, "0" } | ||||
| +	}; | ||||
| + | ||||
| +	if (rtnl_rtdsfield_tab) | ||||
| +		return; | ||||
|  	rtnl_rtdsfield_tab = xzalloc(sizeof(*rtnl_rtdsfield_tab)); | ||||
| -	rtnl_rtdsfield_tab->tab[0] = "0"; | ||||
| -	rtnl_tab_initialize("dsfield", rtnl_rtdsfield_tab->tab); | ||||
| +	rtnl_rtdsfield_tab->tab = xzalloc(sizeof(init_tab)); | ||||
| +	rtnl_rtdsfield_tab->length = sizeof(init_tab) / sizeof(init_tab[0]); | ||||
| +	memcpy(rtnl_rtdsfield_tab->tab, init_tab, sizeof(init_tab)); | ||||
| +	rtnl_tab_initialize("dsfield", rtnl_rtdsfield_tab); | ||||
|  } | ||||
|   | ||||
|  const char* FAST_FUNC rtnl_dsfield_n2a(int id) | ||||
|  { | ||||
| -	if (id < 0 || id > RT_TABLE_MAX) { | ||||
| -		return itoa(id); | ||||
| -	} | ||||
| +	size_t i; | ||||
|   | ||||
|  	rtnl_rtdsfield_initialize(); | ||||
|   | ||||
| -	if (rtnl_rtdsfield_tab->tab[id]) | ||||
| -		return rtnl_rtdsfield_tab->tab[id]; | ||||
| +	for (i = 0; i < rtnl_rtdsfield_tab->length; i++) | ||||
| +		if (rtnl_rtdsfield_tab->tab[i].id == id) | ||||
| +			return rtnl_rtdsfield_tab->tab[i].name; | ||||
| + | ||||
|  	return itoa(id); | ||||
|  } | ||||
|   | ||||
| @@ -224,27 +256,33 @@ static rtnl_tab_t *rtnl_rttable_tab; | ||||
|   | ||||
|  static void rtnl_rttable_initialize(void) | ||||
|  { | ||||
| +	static const struct rtnl_tab_entry tab_init[] = { | ||||
| +		{   0, "unspec"  }, | ||||
| +		{ 253, "default" }, | ||||
| +		{ 254, "main"    }, | ||||
| +		{ 255, "local"   } | ||||
| +	}; | ||||
| + | ||||
|  	if (rtnl_rttable_tab) | ||||
|  		return; | ||||
|   | ||||
|  	rtnl_rttable_tab = xzalloc(sizeof(*rtnl_rttable_tab)); | ||||
| -	rtnl_rttable_tab->tab[0] = "unspec"; | ||||
| -	rtnl_rttable_tab->tab[255] = "local"; | ||||
| -	rtnl_rttable_tab->tab[254] = "main"; | ||||
| -	rtnl_rttable_tab->tab[253] = "default"; | ||||
| -	rtnl_tab_initialize("tables", rtnl_rttable_tab->tab); | ||||
| +	rtnl_rttable_tab->tab = xzalloc(sizeof(tab_init)); | ||||
| +	rtnl_rttable_tab->length = sizeof(tab_init) / sizeof(tab_init[0]); | ||||
| +	memcpy(rtnl_rttable_tab->tab, tab_init, sizeof(tab_init)); | ||||
| +	rtnl_tab_initialize("tables", rtnl_rttable_tab); | ||||
|  } | ||||
|   | ||||
|  const char* FAST_FUNC rtnl_rttable_n2a(int id) | ||||
|  { | ||||
| -	if (id < 0 || id > RT_TABLE_MAX) { | ||||
| -		return itoa(id); | ||||
| -	} | ||||
| +	size_t i; | ||||
|   | ||||
|  	rtnl_rttable_initialize(); | ||||
|   | ||||
| -	if (rtnl_rttable_tab->tab[id]) | ||||
| -		return rtnl_rttable_tab->tab[id]; | ||||
| +	for (i = 0; i < rtnl_rttable_tab->length; i++) | ||||
| +		if (rtnl_rttable_tab->tab[i].id == id) | ||||
| +			return rtnl_rttable_tab->tab[i].name; | ||||
| + | ||||
|  	return itoa(id); | ||||
|  } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user