aboutsummaryrefslogtreecommitdiff
path: root/networking
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2017-07-24 11:40:28 +0100
committerRon Yorston <rmy@pobox.com>2017-07-24 12:03:28 +0100
commit60411636073cdc08e8005f0de00098e6dd00eaf5 (patch)
tree58673b64af1e663280be81f798c8f66ce116d1dd /networking
parenteeceafbc5c4caf513c6d92b7d71ecb0ccd89a3f8 (diff)
parentb72f1ef17b97802d33f0ac522f64bea0f65442c5 (diff)
downloadbusybox-w32-60411636073cdc08e8005f0de00098e6dd00eaf5.tar.gz
busybox-w32-60411636073cdc08e8005f0de00098e6dd00eaf5.tar.bz2
busybox-w32-60411636073cdc08e8005f0de00098e6dd00eaf5.zip
Merge branch 'busybox' into merge
Diffstat (limited to 'networking')
-rw-r--r--networking/Config.src42
-rw-r--r--networking/arp.c4
-rw-r--r--networking/arping.c4
-rw-r--r--networking/brctl.c20
-rw-r--r--networking/dnsd.c4
-rw-r--r--networking/ether-wake.c4
-rw-r--r--networking/ftpd.c18
-rw-r--r--networking/ftpgetput.c8
-rw-r--r--networking/hostname.c8
-rw-r--r--networking/httpd.c98
-rw-r--r--networking/ifconfig.c26
-rw-r--r--networking/ifenslave.c6
-rw-r--r--networking/ifplugd.c10
-rw-r--r--networking/ifupdown.c68
-rw-r--r--networking/inetd.c16
-rw-r--r--networking/ip.c54
-rw-r--r--networking/ipcalc.c10
-rw-r--r--networking/isrv_identd.c6
-rw-r--r--networking/nameif.c36
-rw-r--r--networking/nbd-client.c4
-rw-r--r--networking/nc.c22
-rw-r--r--networking/netstat.c12
-rw-r--r--networking/nslookup.c4
-rw-r--r--networking/ntpd.c12
-rw-r--r--networking/ping.c25
-rw-r--r--networking/pscan.c4
-rw-r--r--networking/route.c4
-rw-r--r--networking/slattach.c6
-rw-r--r--networking/ssl_client.c4
-rw-r--r--networking/tcpudp.c12
-rw-r--r--networking/telnet.c20
-rw-r--r--networking/telnetd.c60
-rw-r--r--networking/tftp.c44
-rw-r--r--networking/traceroute.c12
-rw-r--r--networking/tunctl.c8
-rw-r--r--networking/udhcp/Config.src132
-rw-r--r--networking/udhcp/d6_dhcpc.c22
-rw-r--r--networking/udhcp/d6_socket.c4
-rw-r--r--networking/udhcp/dhcpc.c8
-rw-r--r--networking/udhcp/socket.c2
-rw-r--r--networking/vconfig.c4
-rw-r--r--networking/wget.c122
-rw-r--r--networking/whois.c4
-rw-r--r--networking/zcip.c21
44 files changed, 508 insertions, 506 deletions
diff --git a/networking/Config.src b/networking/Config.src
index 0adb1e2f9..492c60da4 100644
--- a/networking/Config.src
+++ b/networking/Config.src
@@ -9,42 +9,42 @@ config FEATURE_IPV6
9 bool "Enable IPv6 support" 9 bool "Enable IPv6 support"
10 default y 10 default y
11 help 11 help
12 Enable IPv6 support in busybox. 12 Enable IPv6 support in busybox.
13 This adds IPv6 support in the networking applets. 13 This adds IPv6 support in the networking applets.
14 14
15config FEATURE_UNIX_LOCAL 15config FEATURE_UNIX_LOCAL
16 bool "Enable Unix domain socket support (usually not needed)" 16 bool "Enable Unix domain socket support (usually not needed)"
17 default n 17 default n
18 help 18 help
19 Enable Unix domain socket support in all busybox networking 19 Enable Unix domain socket support in all busybox networking
20 applets. Address of the form local:/path/to/unix/socket 20 applets. Address of the form local:/path/to/unix/socket
21 will be recognized. 21 will be recognized.
22 22
23 This extension is almost never used in real world usage. 23 This extension is almost never used in real world usage.
24 You most likely want to say N. 24 You most likely want to say N.
25 25
26config FEATURE_PREFER_IPV4_ADDRESS 26config FEATURE_PREFER_IPV4_ADDRESS
27 bool "Prefer IPv4 addresses from DNS queries" 27 bool "Prefer IPv4 addresses from DNS queries"
28 default y 28 default y
29 depends on FEATURE_IPV6 29 depends on FEATURE_IPV6
30 help 30 help
31 Use IPv4 address of network host if it has one. 31 Use IPv4 address of network host if it has one.
32 32
33 If this option is off, the first returned address will be used. 33 If this option is off, the first returned address will be used.
34 This may cause problems when your DNS server is IPv6-capable and 34 This may cause problems when your DNS server is IPv6-capable and
35 is returning IPv6 host addresses too. If IPv6 address 35 is returning IPv6 host addresses too. If IPv6 address
36 precedes IPv4 one in DNS reply, busybox network applets 36 precedes IPv4 one in DNS reply, busybox network applets
37 (e.g. wget) will use IPv6 address. On an IPv6-incapable host 37 (e.g. wget) will use IPv6 address. On an IPv6-incapable host
38 or network applets will fail to connect to the host 38 or network applets will fail to connect to the host
39 using IPv6 address. 39 using IPv6 address.
40 40
41config VERBOSE_RESOLUTION_ERRORS 41config VERBOSE_RESOLUTION_ERRORS
42 bool "Verbose resolution errors" 42 bool "Verbose resolution errors"
43 default n 43 default n
44 help 44 help
45 Enable if you are not satisfied with simplistic 45 Enable if you are not satisfied with simplistic
46 "can't resolve 'hostname.com'" and want to know more. 46 "can't resolve 'hostname.com'" and want to know more.
47 This may increase size of your executable a bit. 47 This may increase size of your executable a bit.
48 48
49INSERT 49INSERT
50 50
@@ -55,8 +55,8 @@ config IFUPDOWN_UDHCPC_CMD_OPTIONS
55 default "-R -n" 55 default "-R -n"
56 depends on IFUP || IFDOWN 56 depends on IFUP || IFDOWN
57 help 57 help
58 Command line options to pass to udhcpc from ifup. 58 Command line options to pass to udhcpc from ifup.
59 Intended to alter options not available in /etc/network/interfaces. 59 Intended to alter options not available in /etc/network/interfaces.
60 (IE: --syslog --background etc...) 60 (IE: --syslog --background etc...)
61 61
62endmenu 62endmenu
diff --git a/networking/arp.c b/networking/arp.c
index a62a3761c..177ab1571 100644
--- a/networking/arp.c
+++ b/networking/arp.c
@@ -13,11 +13,11 @@
13 * modified for getopt32 by Arne Bernin <arne [at] alamut.de> 13 * modified for getopt32 by Arne Bernin <arne [at] alamut.de>
14 */ 14 */
15//config:config ARP 15//config:config ARP
16//config: bool "arp" 16//config: bool "arp (11 kb)"
17//config: default y 17//config: default y
18//config: select PLATFORM_LINUX 18//config: select PLATFORM_LINUX
19//config: help 19//config: help
20//config: Manipulate the system ARP cache. 20//config: Manipulate the system ARP cache.
21 21
22//applet:IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP)) 22//applet:IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP))
23 23
diff --git a/networking/arping.c b/networking/arping.c
index 5bfeb1b45..71672957e 100644
--- a/networking/arping.c
+++ b/networking/arping.c
@@ -6,11 +6,11 @@
6 * Busybox port: Nick Fedchik <nick@fedchik.org.ua> 6 * Busybox port: Nick Fedchik <nick@fedchik.org.ua>
7 */ 7 */
8//config:config ARPING 8//config:config ARPING
9//config: bool "arping" 9//config: bool "arping (9.3 kb)"
10//config: default y 10//config: default y
11//config: select PLATFORM_LINUX 11//config: select PLATFORM_LINUX
12//config: help 12//config: help
13//config: Ping hosts by ARP packets. 13//config: Ping hosts by ARP packets.
14//config: 14//config:
15 15
16//applet:IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP))
diff --git a/networking/brctl.c b/networking/brctl.c
index 35876896e..690791e4c 100644
--- a/networking/brctl.c
+++ b/networking/brctl.c
@@ -13,31 +13,31 @@
13 * At the time of this writing this was considered a feature. 13 * At the time of this writing this was considered a feature.
14 */ 14 */
15//config:config BRCTL 15//config:config BRCTL
16//config: bool "brctl" 16//config: bool "brctl (4.7 kb)"
17//config: default y 17//config: default y
18//config: select PLATFORM_LINUX 18//config: select PLATFORM_LINUX
19//config: help 19//config: help
20//config: Manage ethernet bridges. 20//config: Manage ethernet bridges.
21//config: Supports addbr/delbr and addif/delif. 21//config: Supports addbr/delbr and addif/delif.
22//config: 22//config:
23//config:config FEATURE_BRCTL_FANCY 23//config:config FEATURE_BRCTL_FANCY
24//config: bool "Fancy options" 24//config: bool "Fancy options"
25//config: default y 25//config: default y
26//config: depends on BRCTL 26//config: depends on BRCTL
27//config: help 27//config: help
28//config: Add support for extended option like: 28//config: Add support for extended option like:
29//config: setageing, setfd, sethello, setmaxage, 29//config: setageing, setfd, sethello, setmaxage,
30//config: setpathcost, setportprio, setbridgeprio, 30//config: setpathcost, setportprio, setbridgeprio,
31//config: stp 31//config: stp
32//config: This adds about 600 bytes. 32//config: This adds about 600 bytes.
33//config: 33//config:
34//config:config FEATURE_BRCTL_SHOW 34//config:config FEATURE_BRCTL_SHOW
35//config: bool "Support show" 35//config: bool "Support show"
36//config: default y 36//config: default y
37//config: depends on BRCTL && FEATURE_BRCTL_FANCY 37//config: depends on BRCTL && FEATURE_BRCTL_FANCY
38//config: help 38//config: help
39//config: Add support for option which prints the current config: 39//config: Add support for option which prints the current config:
40//config: show 40//config: show
41 41
42//applet:IF_BRCTL(APPLET(brctl, BB_DIR_USR_SBIN, BB_SUID_DROP)) 42//applet:IF_BRCTL(APPLET(brctl, BB_DIR_USR_SBIN, BB_SUID_DROP))
43 43
diff --git a/networking/dnsd.c b/networking/dnsd.c
index 1b85618c6..37a80309d 100644
--- a/networking/dnsd.c
+++ b/networking/dnsd.c
@@ -17,10 +17,10 @@
17 * the first porting of oao' scdns to busybox also. 17 * the first porting of oao' scdns to busybox also.
18 */ 18 */
19//config:config DNSD 19//config:config DNSD
20//config: bool "dnsd" 20//config: bool "dnsd (9.8 kb)"
21//config: default y 21//config: default y
22//config: help 22//config: help
23//config: Small and static DNS server daemon. 23//config: Small and static DNS server daemon.
24 24
25//applet:IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 25//applet:IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP))
26 26
diff --git a/networking/ether-wake.c b/networking/ether-wake.c
index d7d691772..52522e76d 100644
--- a/networking/ether-wake.c
+++ b/networking/ether-wake.c
@@ -64,11 +64,11 @@
64 * filter. That configuration consumes more power. 64 * filter. That configuration consumes more power.
65 */ 65 */
66//config:config ETHER_WAKE 66//config:config ETHER_WAKE
67//config: bool "ether-wake" 67//config: bool "ether-wake (6.6 kb)"
68//config: default y 68//config: default y
69//config: select PLATFORM_LINUX 69//config: select PLATFORM_LINUX
70//config: help 70//config: help
71//config: Send a magic packet to wake up sleeping machines. 71//config: Send a magic packet to wake up sleeping machines.
72 72
73//applet:IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_SBIN, BB_SUID_DROP, ether_wake)) 73//applet:IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_SBIN, BB_SUID_DROP, ether_wake))
74 74
diff --git a/networking/ftpd.c b/networking/ftpd.c
index 439608ce6..aee00e1c3 100644
--- a/networking/ftpd.c
+++ b/networking/ftpd.c
@@ -12,35 +12,35 @@
12 * You have to run this daemon via inetd. 12 * You have to run this daemon via inetd.
13 */ 13 */
14//config:config FTPD 14//config:config FTPD
15//config: bool "ftpd" 15//config: bool "ftpd (30 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: Simple FTP daemon. You have to run it via inetd. 18//config: Simple FTP daemon. You have to run it via inetd.
19//config: 19//config:
20//config:config FEATURE_FTPD_WRITE 20//config:config FEATURE_FTPD_WRITE
21//config: bool "Enable upload commands" 21//config: bool "Enable upload commands"
22//config: default y 22//config: default y
23//config: depends on FTPD 23//config: depends on FTPD
24//config: help 24//config: help
25//config: Enable all kinds of FTP upload commands (-w option) 25//config: Enable all kinds of FTP upload commands (-w option)
26//config: 26//config:
27//config:config FEATURE_FTPD_ACCEPT_BROKEN_LIST 27//config:config FEATURE_FTPD_ACCEPT_BROKEN_LIST
28//config: bool "Enable workaround for RFC-violating clients" 28//config: bool "Enable workaround for RFC-violating clients"
29//config: default y 29//config: default y
30//config: depends on FTPD 30//config: depends on FTPD
31//config: help 31//config: help
32//config: Some ftp clients (among them KDE's Konqueror) issue illegal 32//config: Some ftp clients (among them KDE's Konqueror) issue illegal
33//config: "LIST -l" requests. This option works around such problems. 33//config: "LIST -l" requests. This option works around such problems.
34//config: It might prevent you from listing files starting with "-" and 34//config: It might prevent you from listing files starting with "-" and
35//config: it increases the code size by ~40 bytes. 35//config: it increases the code size by ~40 bytes.
36//config: Most other ftp servers seem to behave similar to this. 36//config: Most other ftp servers seem to behave similar to this.
37//config: 37//config:
38//config:config FEATURE_FTPD_AUTHENTICATION 38//config:config FEATURE_FTPD_AUTHENTICATION
39//config: bool "Enable authentication" 39//config: bool "Enable authentication"
40//config: default y 40//config: default y
41//config: depends on FTPD 41//config: depends on FTPD
42//config: help 42//config: help
43//config: Enable basic system login as seen in telnet etc. 43//config: Enable basic system login as seen in telnet etc.
44 44
45//applet:IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 45//applet:IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
46 46
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c
index 3eadd752d..cb0a96b59 100644
--- a/networking/ftpgetput.c
+++ b/networking/ftpgetput.c
@@ -13,16 +13,16 @@
13 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 13 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
14 */ 14 */
15//config:config FTPGET 15//config:config FTPGET
16//config: bool "ftpget" 16//config: bool "ftpget (8 kb)"
17//config: default y 17//config: default y
18//config: help 18//config: help
19//config: Retrieve a remote file via FTP. 19//config: Retrieve a remote file via FTP.
20//config: 20//config:
21//config:config FTPPUT 21//config:config FTPPUT
22//config: bool "ftpput" 22//config: bool "ftpput (7.7 kb)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: Store a remote file via FTP. 25//config: Store a remote file via FTP.
26//config: 26//config:
27//config:config FEATURE_FTPGETPUT_LONG_OPTIONS 27//config:config FEATURE_FTPGETPUT_LONG_OPTIONS
28//config: bool "Enable long options in ftpget/ftpput" 28//config: bool "Enable long options in ftpget/ftpput"
diff --git a/networking/hostname.c b/networking/hostname.c
index 9f2418422..4b305d2b6 100644
--- a/networking/hostname.c
+++ b/networking/hostname.c
@@ -11,16 +11,16 @@
11 */ 11 */
12 12
13//config:config HOSTNAME 13//config:config HOSTNAME
14//config: bool "hostname" 14//config: bool "hostname (5.6 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: Show or set the system's host name. 17//config: Show or set the system's host name.
18//config: 18//config:
19//config:config DNSDOMAINNAME 19//config:config DNSDOMAINNAME
20//config: bool "dnsdomainname" 20//config: bool "dnsdomainname (3.6 kb)"
21//config: default y 21//config: default y
22//config: help 22//config: help
23//config: Alias to "hostname -d". 23//config: Alias to "hostname -d".
24 24
25// APPLET_ODDNAME:name main location suid_type help 25// APPLET_ODDNAME:name main location suid_type help
26//applet:IF_DNSDOMAINNAME(APPLET_ODDNAME(dnsdomainname, hostname, BB_DIR_BIN, BB_SUID_DROP, dnsdomainname)) 26//applet:IF_DNSDOMAINNAME(APPLET_ODDNAME(dnsdomainname, hostname, BB_DIR_BIN, BB_SUID_DROP, dnsdomainname))
diff --git a/networking/httpd.c b/networking/httpd.c
index e072f23c7..cfc07075b 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -99,123 +99,123 @@
99 */ 99 */
100 /* TODO: use TCP_CORK, parse_config() */ 100 /* TODO: use TCP_CORK, parse_config() */
101//config:config HTTPD 101//config:config HTTPD
102//config: bool "httpd" 102//config: bool "httpd (32 kb)"
103//config: default y 103//config: default y
104//config: help 104//config: help
105//config: HTTP server. 105//config: HTTP server.
106//config: 106//config:
107//config:config FEATURE_HTTPD_RANGES 107//config:config FEATURE_HTTPD_RANGES
108//config: bool "Support 'Ranges:' header" 108//config: bool "Support 'Ranges:' header"
109//config: default y 109//config: default y
110//config: depends on HTTPD 110//config: depends on HTTPD
111//config: help 111//config: help
112//config: Makes httpd emit "Accept-Ranges: bytes" header and understand 112//config: Makes httpd emit "Accept-Ranges: bytes" header and understand
113//config: "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted 113//config: "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
114//config: downloads, seeking in multimedia players etc. 114//config: downloads, seeking in multimedia players etc.
115//config: 115//config:
116//config:config FEATURE_HTTPD_SETUID 116//config:config FEATURE_HTTPD_SETUID
117//config: bool "Enable -u <user> option" 117//config: bool "Enable -u <user> option"
118//config: default y 118//config: default y
119//config: depends on HTTPD 119//config: depends on HTTPD
120//config: help 120//config: help
121//config: This option allows the server to run as a specific user 121//config: This option allows the server to run as a specific user
122//config: rather than defaulting to the user that starts the server. 122//config: rather than defaulting to the user that starts the server.
123//config: Use of this option requires special privileges to change to a 123//config: Use of this option requires special privileges to change to a
124//config: different user. 124//config: different user.
125//config: 125//config:
126//config:config FEATURE_HTTPD_BASIC_AUTH 126//config:config FEATURE_HTTPD_BASIC_AUTH
127//config: bool "Enable Basic http Authentication" 127//config: bool "Enable Basic http Authentication"
128//config: default y 128//config: default y
129//config: depends on HTTPD 129//config: depends on HTTPD
130//config: help 130//config: help
131//config: Utilizes password settings from /etc/httpd.conf for basic 131//config: Utilizes password settings from /etc/httpd.conf for basic
132//config: authentication on a per url basis. 132//config: authentication on a per url basis.
133//config: Example for httpd.conf file: 133//config: Example for httpd.conf file:
134//config: /adm:toor:PaSsWd 134//config: /adm:toor:PaSsWd
135//config: 135//config:
136//config:config FEATURE_HTTPD_AUTH_MD5 136//config:config FEATURE_HTTPD_AUTH_MD5
137//config: bool "Support MD5 crypted passwords for http Authentication" 137//config: bool "Support MD5 crypted passwords for http Authentication"
138//config: default y 138//config: default y
139//config: depends on FEATURE_HTTPD_BASIC_AUTH 139//config: depends on FEATURE_HTTPD_BASIC_AUTH
140//config: help 140//config: help
141//config: Enables encrypted passwords, and wildcard user/passwords 141//config: Enables encrypted passwords, and wildcard user/passwords
142//config: in httpd.conf file. 142//config: in httpd.conf file.
143//config: User '*' means 'any system user name is ok', 143//config: User '*' means 'any system user name is ok',
144//config: password of '*' means 'use system password for this user' 144//config: password of '*' means 'use system password for this user'
145//config: Examples: 145//config: Examples:
146//config: /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0 146//config: /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0
147//config: /adm:root:* 147//config: /adm:root:*
148//config: /wiki:*:* 148//config: /wiki:*:*
149//config: 149//config:
150//config:config FEATURE_HTTPD_CGI 150//config:config FEATURE_HTTPD_CGI
151//config: bool "Support Common Gateway Interface (CGI)" 151//config: bool "Support Common Gateway Interface (CGI)"
152//config: default y 152//config: default y
153//config: depends on HTTPD 153//config: depends on HTTPD
154//config: help 154//config: help
155//config: This option allows scripts and executables to be invoked 155//config: This option allows scripts and executables to be invoked
156//config: when specific URLs are requested. 156//config: when specific URLs are requested.
157//config: 157//config:
158//config:config FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR 158//config:config FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
159//config: bool "Support running scripts through an interpreter" 159//config: bool "Support running scripts through an interpreter"
160//config: default y 160//config: default y
161//config: depends on FEATURE_HTTPD_CGI 161//config: depends on FEATURE_HTTPD_CGI
162//config: help 162//config: help
163//config: This option enables support for running scripts through an 163//config: This option enables support for running scripts through an
164//config: interpreter. Turn this on if you want PHP scripts to work 164//config: interpreter. Turn this on if you want PHP scripts to work
165//config: properly. You need to supply an additional line in your 165//config: properly. You need to supply an additional line in your
166//config: httpd.conf file: 166//config: httpd.conf file:
167//config: *.php:/path/to/your/php 167//config: *.php:/path/to/your/php
168//config: 168//config:
169//config:config FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV 169//config:config FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
170//config: bool "Set REMOTE_PORT environment variable for CGI" 170//config: bool "Set REMOTE_PORT environment variable for CGI"
171//config: default y 171//config: default y
172//config: depends on FEATURE_HTTPD_CGI 172//config: depends on FEATURE_HTTPD_CGI
173//config: help 173//config: help
174//config: Use of this option can assist scripts in generating 174//config: Use of this option can assist scripts in generating
175//config: references that contain a unique port number. 175//config: references that contain a unique port number.
176//config: 176//config:
177//config:config FEATURE_HTTPD_ENCODE_URL_STR 177//config:config FEATURE_HTTPD_ENCODE_URL_STR
178//config: bool "Enable -e option (useful for CGIs written as shell scripts)" 178//config: bool "Enable -e option (useful for CGIs written as shell scripts)"
179//config: default y 179//config: default y
180//config: depends on HTTPD 180//config: depends on HTTPD
181//config: help 181//config: help
182//config: This option allows html encoding of arbitrary strings for display 182//config: This option allows html encoding of arbitrary strings for display
183//config: by the browser. Output goes to stdout. 183//config: by the browser. Output goes to stdout.
184//config: For example, httpd -e "<Hello World>" produces 184//config: For example, httpd -e "<Hello World>" produces
185//config: "&#60Hello&#32World&#62". 185//config: "&#60Hello&#32World&#62".
186//config: 186//config:
187//config:config FEATURE_HTTPD_ERROR_PAGES 187//config:config FEATURE_HTTPD_ERROR_PAGES
188//config: bool "Support custom error pages" 188//config: bool "Support custom error pages"
189//config: default y 189//config: default y
190//config: depends on HTTPD 190//config: depends on HTTPD
191//config: help 191//config: help
192//config: This option allows you to define custom error pages in 192//config: This option allows you to define custom error pages in
193//config: the configuration file instead of the default HTTP status 193//config: the configuration file instead of the default HTTP status
194//config: error pages. For instance, if you add the line: 194//config: error pages. For instance, if you add the line:
195//config: E404:/path/e404.html 195//config: E404:/path/e404.html
196//config: in the config file, the server will respond the specified 196//config: in the config file, the server will respond the specified
197//config: '/path/e404.html' file instead of the terse '404 NOT FOUND' 197//config: '/path/e404.html' file instead of the terse '404 NOT FOUND'
198//config: message. 198//config: message.
199//config: 199//config:
200//config:config FEATURE_HTTPD_PROXY 200//config:config FEATURE_HTTPD_PROXY
201//config: bool "Support reverse proxy" 201//config: bool "Support reverse proxy"
202//config: default y 202//config: default y
203//config: depends on HTTPD 203//config: depends on HTTPD
204//config: help 204//config: help
205//config: This option allows you to define URLs that will be forwarded 205//config: This option allows you to define URLs that will be forwarded
206//config: to another HTTP server. To setup add the following line to the 206//config: to another HTTP server. To setup add the following line to the
207//config: configuration file 207//config: configuration file
208//config: P:/url/:http://hostname[:port]/new/path/ 208//config: P:/url/:http://hostname[:port]/new/path/
209//config: Then a request to /url/myfile will be forwarded to 209//config: Then a request to /url/myfile will be forwarded to
210//config: http://hostname[:port]/new/path/myfile. 210//config: http://hostname[:port]/new/path/myfile.
211//config: 211//config:
212//config:config FEATURE_HTTPD_GZIP 212//config:config FEATURE_HTTPD_GZIP
213//config: bool "Support GZIP content encoding" 213//config: bool "Support GZIP content encoding"
214//config: default y 214//config: default y
215//config: depends on HTTPD 215//config: depends on HTTPD
216//config: help 216//config: help
217//config: Makes httpd send files using GZIP content encoding if the 217//config: Makes httpd send files using GZIP content encoding if the
218//config: client supports it and a pre-compressed <file>.gz exists. 218//config: client supports it and a pre-compressed <file>.gz exists.
219 219
220//applet:IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 220//applet:IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
221 221
diff --git a/networking/ifconfig.c b/networking/ifconfig.c
index 9e16936d8..d1e9c58dc 100644
--- a/networking/ifconfig.c
+++ b/networking/ifconfig.c
@@ -26,52 +26,52 @@
26 * IPV6 support added by Bart Visscher <magick@linux-fan.com> 26 * IPV6 support added by Bart Visscher <magick@linux-fan.com>
27 */ 27 */
28//config:config IFCONFIG 28//config:config IFCONFIG
29//config: bool "ifconfig" 29//config: bool "ifconfig (12 kb)"
30//config: default y 30//config: default y
31//config: select PLATFORM_LINUX 31//config: select PLATFORM_LINUX
32//config: help 32//config: help
33//config: Ifconfig is used to configure the kernel-resident network interfaces. 33//config: Ifconfig is used to configure the kernel-resident network interfaces.
34//config: 34//config:
35//config:config FEATURE_IFCONFIG_STATUS 35//config:config FEATURE_IFCONFIG_STATUS
36//config: bool "Enable status reporting output (+7k)" 36//config: bool "Enable status reporting output (+7k)"
37//config: default y 37//config: default y
38//config: depends on IFCONFIG 38//config: depends on IFCONFIG
39//config: help 39//config: help
40//config: If ifconfig is called with no arguments it will display the status 40//config: If ifconfig is called with no arguments it will display the status
41//config: of the currently active interfaces. 41//config: of the currently active interfaces.
42//config: 42//config:
43//config:config FEATURE_IFCONFIG_SLIP 43//config:config FEATURE_IFCONFIG_SLIP
44//config: bool "Enable slip-specific options \"keepalive\" and \"outfill\"" 44//config: bool "Enable slip-specific options \"keepalive\" and \"outfill\""
45//config: default y 45//config: default y
46//config: depends on IFCONFIG 46//config: depends on IFCONFIG
47//config: help 47//config: help
48//config: Allow "keepalive" and "outfill" support for SLIP. If you're not 48//config: Allow "keepalive" and "outfill" support for SLIP. If you're not
49//config: planning on using serial lines, leave this unchecked. 49//config: planning on using serial lines, leave this unchecked.
50//config: 50//config:
51//config:config FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ 51//config:config FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
52//config: bool "Enable options \"mem_start\", \"io_addr\", and \"irq\"" 52//config: bool "Enable options \"mem_start\", \"io_addr\", and \"irq\""
53//config: default y 53//config: default y
54//config: depends on IFCONFIG 54//config: depends on IFCONFIG
55//config: help 55//config: help
56//config: Allow the start address for shared memory, start address for I/O, 56//config: Allow the start address for shared memory, start address for I/O,
57//config: and/or the interrupt line used by the specified device. 57//config: and/or the interrupt line used by the specified device.
58//config: 58//config:
59//config:config FEATURE_IFCONFIG_HW 59//config:config FEATURE_IFCONFIG_HW
60//config: bool "Enable option \"hw\" (ether only)" 60//config: bool "Enable option \"hw\" (ether only)"
61//config: default y 61//config: default y
62//config: depends on IFCONFIG 62//config: depends on IFCONFIG
63//config: help 63//config: help
64//config: Set the hardware address of this interface, if the device driver 64//config: Set the hardware address of this interface, if the device driver
65//config: supports this operation. Currently, we only support the 'ether' 65//config: supports this operation. Currently, we only support the 'ether'
66//config: class. 66//config: class.
67//config: 67//config:
68//config:config FEATURE_IFCONFIG_BROADCAST_PLUS 68//config:config FEATURE_IFCONFIG_BROADCAST_PLUS
69//config: bool "Set the broadcast automatically" 69//config: bool "Set the broadcast automatically"
70//config: default y 70//config: default y
71//config: depends on IFCONFIG 71//config: depends on IFCONFIG
72//config: help 72//config: help
73//config: Setting this will make ifconfig attempt to find the broadcast 73//config: Setting this will make ifconfig attempt to find the broadcast
74//config: automatically if the value '+' is used. 74//config: automatically if the value '+' is used.
75 75
76//applet:IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP)) 76//applet:IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP))
77 77
diff --git a/networking/ifenslave.c b/networking/ifenslave.c
index 070931209..26e5e8cf3 100644
--- a/networking/ifenslave.c
+++ b/networking/ifenslave.c
@@ -98,12 +98,12 @@
98 * set version to 1.1.0 98 * set version to 1.1.0
99 */ 99 */
100//config:config IFENSLAVE 100//config:config IFENSLAVE
101//config: bool "ifenslave" 101//config: bool "ifenslave (13 kb)"
102//config: default y 102//config: default y
103//config: select PLATFORM_LINUX 103//config: select PLATFORM_LINUX
104//config: help 104//config: help
105//config: Userspace application to bind several interfaces 105//config: Userspace application to bind several interfaces
106//config: to a logical interface (use with kernel bonding driver). 106//config: to a logical interface (use with kernel bonding driver).
107 107
108//applet:IF_IFENSLAVE(APPLET(ifenslave, BB_DIR_SBIN, BB_SUID_DROP)) 108//applet:IF_IFENSLAVE(APPLET(ifenslave, BB_DIR_SBIN, BB_SUID_DROP))
109 109
diff --git a/networking/ifplugd.c b/networking/ifplugd.c
index 4f8a274b0..9bc1a075f 100644
--- a/networking/ifplugd.c
+++ b/networking/ifplugd.c
@@ -7,11 +7,11 @@
7 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 7 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
8 */ 8 */
9//config:config IFPLUGD 9//config:config IFPLUGD
10//config: bool "ifplugd" 10//config: bool "ifplugd (9.9 kb)"
11//config: default y 11//config: default y
12//config: select PLATFORM_LINUX 12//config: select PLATFORM_LINUX
13//config: help 13//config: help
14//config: Network interface plug detection daemon. 14//config: Network interface plug detection daemon.
15 15
16//applet:IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 16//applet:IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_SBIN, BB_SUID_DROP))
17 17
@@ -342,10 +342,8 @@ static int run_script(const char *action)
342 /* r < 0 - can't exec, 0 <= r < 0x180 - exited, >=0x180 - killed by sig (r-0x180) */ 342 /* r < 0 - can't exec, 0 <= r < 0x180 - exited, >=0x180 - killed by sig (r-0x180) */
343 r = spawn_and_wait(argv); 343 r = spawn_and_wait(argv);
344 344
345 unsetenv(IFPLUGD_ENV_PREVIOUS); 345 bb_unsetenv_and_free(env_PREVIOUS);
346 unsetenv(IFPLUGD_ENV_CURRENT); 346 bb_unsetenv_and_free(env_CURRENT);
347 free(env_PREVIOUS);
348 free(env_CURRENT);
349 347
350 bb_error_msg("exit code: %d", r & 0xff); 348 bb_error_msg("exit code: %d", r & 0xff);
351 return (option_mask32 & FLAG_IGNORE_RETVAL) ? 0 : r; 349 return (option_mask32 & FLAG_IGNORE_RETVAL) ? 0 : r;
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index a76fe1021..f8c29ab00 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -18,66 +18,66 @@
18 */ 18 */
19 19
20//config:config IFUP 20//config:config IFUP
21//config: bool "ifup" 21//config: bool "ifup (17 kb)"
22//config: default y 22//config: default y
23//config: help 23//config: help
24//config: Activate the specified interfaces. This applet makes use 24//config: Activate the specified interfaces. This applet makes use
25//config: of either "ifconfig" and "route" or the "ip" command to actually 25//config: of either "ifconfig" and "route" or the "ip" command to actually
26//config: configure network interfaces. Therefore, you will probably also want 26//config: configure network interfaces. Therefore, you will probably also want
27//config: to enable either IFCONFIG and ROUTE, or enable 27//config: to enable either IFCONFIG and ROUTE, or enable
28//config: FEATURE_IFUPDOWN_IP and the various IP options. Of 28//config: FEATURE_IFUPDOWN_IP and the various IP options. Of
29//config: course you could use non-busybox versions of these programs, so 29//config: course you could use non-busybox versions of these programs, so
30//config: against my better judgement (since this will surely result in plenty 30//config: against my better judgement (since this will surely result in plenty
31//config: of support questions on the mailing list), I do not force you to 31//config: of support questions on the mailing list), I do not force you to
32//config: enable these additional options. It is up to you to supply either 32//config: enable these additional options. It is up to you to supply either
33//config: "ifconfig", "route" and "run-parts" or the "ip" command, either 33//config: "ifconfig", "route" and "run-parts" or the "ip" command, either
34//config: via busybox or via standalone utilities. 34//config: via busybox or via standalone utilities.
35//config: 35//config:
36//config:config IFDOWN 36//config:config IFDOWN
37//config: bool "ifdown" 37//config: bool "ifdown (15 kb)"
38//config: default y 38//config: default y
39//config: help 39//config: help
40//config: Deactivate the specified interfaces. 40//config: Deactivate the specified interfaces.
41//config: 41//config:
42//config:config IFUPDOWN_IFSTATE_PATH 42//config:config IFUPDOWN_IFSTATE_PATH
43//config: string "Absolute path to ifstate file" 43//config: string "Absolute path to ifstate file"
44//config: default "/var/run/ifstate" 44//config: default "/var/run/ifstate"
45//config: depends on IFUP || IFDOWN 45//config: depends on IFUP || IFDOWN
46//config: help 46//config: help
47//config: ifupdown keeps state information in a file called ifstate. 47//config: ifupdown keeps state information in a file called ifstate.
48//config: Typically it is located in /var/run/ifstate, however 48//config: Typically it is located in /var/run/ifstate, however
49//config: some distributions tend to put it in other places 49//config: some distributions tend to put it in other places
50//config: (debian, for example, uses /etc/network/run/ifstate). 50//config: (debian, for example, uses /etc/network/run/ifstate).
51//config: This config option defines location of ifstate. 51//config: This config option defines location of ifstate.
52//config: 52//config:
53//config:config FEATURE_IFUPDOWN_IP 53//config:config FEATURE_IFUPDOWN_IP
54//config: bool "Use ip tool (else ifconfig/route is used)" 54//config: bool "Use ip tool (else ifconfig/route is used)"
55//config: default y 55//config: default y
56//config: depends on IFUP || IFDOWN 56//config: depends on IFUP || IFDOWN
57//config: help 57//config: help
58//config: Use the iproute "ip" command to implement "ifup" and "ifdown", rather 58//config: Use the iproute "ip" command to implement "ifup" and "ifdown", rather
59//config: than the default of using the older "ifconfig" and "route" utilities. 59//config: than the default of using the older "ifconfig" and "route" utilities.
60//config: 60//config:
61//config: If Y: you must install either the full-blown iproute2 package 61//config: If Y: you must install either the full-blown iproute2 package
62//config: or enable "ip" applet in Busybox, or the "ifup" and "ifdown" applets 62//config: or enable "ip" applet in Busybox, or the "ifup" and "ifdown" applets
63//config: will not work. 63//config: will not work.
64//config: 64//config:
65//config: If N: you must install either the full-blown ifconfig and route 65//config: If N: you must install either the full-blown ifconfig and route
66//config: utilities, or enable these applets in Busybox. 66//config: utilities, or enable these applets in Busybox.
67//config: 67//config:
68//config:config FEATURE_IFUPDOWN_IPV4 68//config:config FEATURE_IFUPDOWN_IPV4
69//config: bool "Support IPv4" 69//config: bool "Support IPv4"
70//config: default y 70//config: default y
71//config: depends on IFUP || IFDOWN 71//config: depends on IFUP || IFDOWN
72//config: help 72//config: help
73//config: If you want ifup/ifdown to talk IPv4, leave this on. 73//config: If you want ifup/ifdown to talk IPv4, leave this on.
74//config: 74//config:
75//config:config FEATURE_IFUPDOWN_IPV6 75//config:config FEATURE_IFUPDOWN_IPV6
76//config: bool "Support IPv6" 76//config: bool "Support IPv6"
77//config: default y 77//config: default y
78//config: depends on (IFUP || IFDOWN) && FEATURE_IPV6 78//config: depends on (IFUP || IFDOWN) && FEATURE_IPV6
79//config: help 79//config: help
80//config: If you need support for IPv6, turn this option on. 80//config: If you need support for IPv6, turn this option on.
81//config: 81//config:
82//UNUSED: 82//UNUSED:
83////////:config FEATURE_IFUPDOWN_IPX 83////////:config FEATURE_IFUPDOWN_IPX
@@ -93,18 +93,18 @@
93//config: default y 93//config: default y
94//config: depends on IFUP || IFDOWN 94//config: depends on IFUP || IFDOWN
95//config: help 95//config: help
96//config: This enables support for the "mapping" stanza, unless you have 96//config: This enables support for the "mapping" stanza, unless you have
97//config: a weird network setup you don't need it. 97//config: a weird network setup you don't need it.
98//config: 98//config:
99//config:config FEATURE_IFUPDOWN_EXTERNAL_DHCP 99//config:config FEATURE_IFUPDOWN_EXTERNAL_DHCP
100//config: bool "Support external DHCP clients" 100//config: bool "Support external DHCP clients"
101//config: default n 101//config: default n
102//config: depends on IFUP || IFDOWN 102//config: depends on IFUP || IFDOWN
103//config: help 103//config: help
104//config: This enables support for the external dhcp clients. Clients are 104//config: This enables support for the external dhcp clients. Clients are
105//config: tried in the following order: dhcpcd, dhclient, pump and udhcpc. 105//config: tried in the following order: dhcpcd, dhclient, pump and udhcpc.
106//config: Otherwise, if udhcpc applet is enabled, it is used. 106//config: Otherwise, if udhcpc applet is enabled, it is used.
107//config: Otherwise, ifup/ifdown will have no support for DHCP. 107//config: Otherwise, ifup/ifdown will have no support for DHCP.
108 108
109// APPLET_ODDNAME:name main location suid_type help 109// APPLET_ODDNAME:name main location suid_type help
110//applet:IF_IFUP( APPLET_ODDNAME(ifup, ifupdown, BB_DIR_SBIN, BB_SUID_DROP, ifup)) 110//applet:IF_IFUP( APPLET_ODDNAME(ifup, ifupdown, BB_DIR_SBIN, BB_SUID_DROP, ifup))
diff --git a/networking/inetd.c b/networking/inetd.c
index 3bf157b70..2991edc09 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -154,46 +154,46 @@
154 * setuid() 154 * setuid()
155 */ 155 */
156//config:config INETD 156//config:config INETD
157//config: bool "inetd" 157//config: bool "inetd (18 kb)"
158//config: default y 158//config: default y
159//config: select FEATURE_SYSLOG 159//config: select FEATURE_SYSLOG
160//config: help 160//config: help
161//config: Internet superserver daemon 161//config: Internet superserver daemon
162//config: 162//config:
163//config:config FEATURE_INETD_SUPPORT_BUILTIN_ECHO 163//config:config FEATURE_INETD_SUPPORT_BUILTIN_ECHO
164//config: bool "Support echo service" 164//config: bool "Support echo service"
165//config: default y 165//config: default y
166//config: depends on INETD 166//config: depends on INETD
167//config: help 167//config: help
168//config: Echo received data internal inetd service 168//config: Echo received data internal inetd service
169//config: 169//config:
170//config:config FEATURE_INETD_SUPPORT_BUILTIN_DISCARD 170//config:config FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
171//config: bool "Support discard service" 171//config: bool "Support discard service"
172//config: default y 172//config: default y
173//config: depends on INETD 173//config: depends on INETD
174//config: help 174//config: help
175//config: Internet /dev/null internal inetd service 175//config: Internet /dev/null internal inetd service
176//config: 176//config:
177//config:config FEATURE_INETD_SUPPORT_BUILTIN_TIME 177//config:config FEATURE_INETD_SUPPORT_BUILTIN_TIME
178//config: bool "Support time service" 178//config: bool "Support time service"
179//config: default y 179//config: default y
180//config: depends on INETD 180//config: depends on INETD
181//config: help 181//config: help
182//config: Return 32 bit time since 1900 internal inetd service 182//config: Return 32 bit time since 1900 internal inetd service
183//config: 183//config:
184//config:config FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME 184//config:config FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
185//config: bool "Support daytime service" 185//config: bool "Support daytime service"
186//config: default y 186//config: default y
187//config: depends on INETD 187//config: depends on INETD
188//config: help 188//config: help
189//config: Return human-readable time internal inetd service 189//config: Return human-readable time internal inetd service
190//config: 190//config:
191//config:config FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN 191//config:config FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
192//config: bool "Support chargen service" 192//config: bool "Support chargen service"
193//config: default y 193//config: default y
194//config: depends on INETD 194//config: depends on INETD
195//config: help 195//config: help
196//config: Familiar character generator internal inetd service 196//config: Familiar character generator internal inetd service
197//config: 197//config:
198//config:config FEATURE_INETD_RPC 198//config:config FEATURE_INETD_RPC
199//config: bool "Support RPC services" 199//config: bool "Support RPC services"
@@ -201,7 +201,7 @@
201//config: depends on INETD 201//config: depends on INETD
202//config: select FEATURE_HAVE_RPC 202//config: select FEATURE_HAVE_RPC
203//config: help 203//config: help
204//config: Support Sun-RPC based services 204//config: Support Sun-RPC based services
205 205
206//applet:IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 206//applet:IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
207 207
diff --git a/networking/ip.c b/networking/ip.c
index 3cf52cdd7..cca7cbe12 100644
--- a/networking/ip.c
+++ b/networking/ip.c
@@ -9,120 +9,120 @@
9 * Bernhard Reutner-Fischer rewrote to use index_in_substr_array 9 * Bernhard Reutner-Fischer rewrote to use index_in_substr_array
10 */ 10 */
11//config:config IP 11//config:config IP
12//config: bool "ip" 12//config: bool "ip (34 kb)"
13//config: default y 13//config: default y
14//config: select PLATFORM_LINUX 14//config: select PLATFORM_LINUX
15//config: help 15//config: help
16//config: The "ip" applet is a TCP/IP interface configuration and routing 16//config: The "ip" applet is a TCP/IP interface configuration and routing
17//config: utility. You generally don't need "ip" to use busybox with 17//config: utility. You generally don't need "ip" to use busybox with
18//config: TCP/IP. 18//config: TCP/IP.
19//config: 19//config:
20//config:config IPADDR 20//config:config IPADDR
21//config: bool "ipaddr" 21//config: bool "ipaddr (14 kb)"
22//config: default y 22//config: default y
23//config: select FEATURE_IP_ADDRESS 23//config: select FEATURE_IP_ADDRESS
24//config: select PLATFORM_LINUX 24//config: select PLATFORM_LINUX
25//config: help 25//config: help
26//config: Support short form of ip addr: ipaddr 26//config: Support short form of ip addr: ipaddr
27//config: 27//config:
28//config:config IPLINK 28//config:config IPLINK
29//config: bool "iplink" 29//config: bool "iplink (16 kb)"
30//config: default y 30//config: default y
31//config: select FEATURE_IP_LINK 31//config: select FEATURE_IP_LINK
32//config: select PLATFORM_LINUX 32//config: select PLATFORM_LINUX
33//config: help 33//config: help
34//config: Support short form of ip link: iplink 34//config: Support short form of ip link: iplink
35//config: 35//config:
36//config:config IPROUTE 36//config:config IPROUTE
37//config: bool "iproute" 37//config: bool "iproute (15 kb)"
38//config: default y 38//config: default y
39//config: select FEATURE_IP_ROUTE 39//config: select FEATURE_IP_ROUTE
40//config: select PLATFORM_LINUX 40//config: select PLATFORM_LINUX
41//config: help 41//config: help
42//config: Support short form of ip route: iproute 42//config: Support short form of ip route: iproute
43//config: 43//config:
44//config:config IPTUNNEL 44//config:config IPTUNNEL
45//config: bool "iptunnel" 45//config: bool "iptunnel (9.6 kb)"
46//config: default y 46//config: default y
47//config: select FEATURE_IP_TUNNEL 47//config: select FEATURE_IP_TUNNEL
48//config: select PLATFORM_LINUX 48//config: select PLATFORM_LINUX
49//config: help 49//config: help
50//config: Support short form of ip tunnel: iptunnel 50//config: Support short form of ip tunnel: iptunnel
51//config: 51//config:
52//config:config IPRULE 52//config:config IPRULE
53//config: bool "iprule" 53//config: bool "iprule (10 kb)"
54//config: default y 54//config: default y
55//config: select FEATURE_IP_RULE 55//config: select FEATURE_IP_RULE
56//config: select PLATFORM_LINUX 56//config: select PLATFORM_LINUX
57//config: help 57//config: help
58//config: Support short form of ip rule: iprule 58//config: Support short form of ip rule: iprule
59//config: 59//config:
60//config:config IPNEIGH 60//config:config IPNEIGH
61//config: bool "ipneigh" 61//config: bool "ipneigh (8.3 kb)"
62//config: default y 62//config: default y
63//config: select FEATURE_IP_NEIGH 63//config: select FEATURE_IP_NEIGH
64//config: select PLATFORM_LINUX 64//config: select PLATFORM_LINUX
65//config: help 65//config: help
66//config: Support short form of ip neigh: ipneigh 66//config: Support short form of ip neigh: ipneigh
67//config: 67//config:
68//config:config FEATURE_IP_ADDRESS 68//config:config FEATURE_IP_ADDRESS
69//config: bool "ip address" 69//config: bool "ip address"
70//config: default y 70//config: default y
71//config: depends on IP || IPADDR 71//config: depends on IP || IPADDR
72//config: help 72//config: help
73//config: Address manipulation support for the "ip" applet. 73//config: Address manipulation support for the "ip" applet.
74//config: 74//config:
75//config:config FEATURE_IP_LINK 75//config:config FEATURE_IP_LINK
76//config: bool "ip link" 76//config: bool "ip link"
77//config: default y 77//config: default y
78//config: depends on IP || IPLINK 78//config: depends on IP || IPLINK
79//config: help 79//config: help
80//config: Configure network devices with "ip". 80//config: Configure network devices with "ip".
81//config: 81//config:
82//config:config FEATURE_IP_ROUTE 82//config:config FEATURE_IP_ROUTE
83//config: bool "ip route" 83//config: bool "ip route"
84//config: default y 84//config: default y
85//config: depends on IP || IPROUTE 85//config: depends on IP || IPROUTE
86//config: help 86//config: help
87//config: Add support for routing table management to "ip". 87//config: Add support for routing table management to "ip".
88//config: 88//config:
89//config:config FEATURE_IP_ROUTE_DIR 89//config:config FEATURE_IP_ROUTE_DIR
90//config: string "ip route configuration directory" 90//config: string "ip route configuration directory"
91//config: default "/etc/iproute2" 91//config: default "/etc/iproute2"
92//config: depends on FEATURE_IP_ROUTE 92//config: depends on FEATURE_IP_ROUTE
93//config: help 93//config: help
94//config: Location of the "ip" applet routing configuration. 94//config: Location of the "ip" applet routing configuration.
95//config: 95//config:
96//config:config FEATURE_IP_TUNNEL 96//config:config FEATURE_IP_TUNNEL
97//config: bool "ip tunnel" 97//config: bool "ip tunnel"
98//config: default y 98//config: default y
99//config: depends on IP || IPTUNNEL 99//config: depends on IP || IPTUNNEL
100//config: help 100//config: help
101//config: Add support for tunneling commands to "ip". 101//config: Add support for tunneling commands to "ip".
102//config: 102//config:
103//config:config FEATURE_IP_RULE 103//config:config FEATURE_IP_RULE
104//config: bool "ip rule" 104//config: bool "ip rule"
105//config: default y 105//config: default y
106//config: depends on IP || IPRULE 106//config: depends on IP || IPRULE
107//config: help 107//config: help
108//config: Add support for rule commands to "ip". 108//config: Add support for rule commands to "ip".
109//config: 109//config:
110//config:config FEATURE_IP_NEIGH 110//config:config FEATURE_IP_NEIGH
111//config: bool "ip neighbor" 111//config: bool "ip neighbor"
112//config: default y 112//config: default y
113//config: depends on IP || IPNEIGH 113//config: depends on IP || IPNEIGH
114//config: help 114//config: help
115//config: Add support for neighbor commands to "ip". 115//config: Add support for neighbor commands to "ip".
116//config: 116//config:
117//config:config FEATURE_IP_RARE_PROTOCOLS 117//config:config FEATURE_IP_RARE_PROTOCOLS
118//config: bool "Support displaying rarely used link types" 118//config: bool "Support displaying rarely used link types"
119//config: default n 119//config: default n
120//config: depends on IP || IPADDR || IPLINK || IPROUTE || IPTUNNEL || IPRULE || IPNEIGH 120//config: depends on IP || IPADDR || IPLINK || IPROUTE || IPTUNNEL || IPRULE || IPNEIGH
121//config: help 121//config: help
122//config: If you are not going to use links of type "frad", "econet", 122//config: If you are not going to use links of type "frad", "econet",
123//config: "bif" etc, you probably don't need to enable this. 123//config: "bif" etc, you probably don't need to enable this.
124//config: Ethernet, wireless, infrared, ppp/slip, ip tunnelling 124//config: Ethernet, wireless, infrared, ppp/slip, ip tunnelling
125//config: link types are supported without this option selected. 125//config: link types are supported without this option selected.
126 126
127//applet:IF_IP(APPLET(ip, BB_DIR_SBIN, BB_SUID_DROP)) 127//applet:IF_IP(APPLET(ip, BB_DIR_SBIN, BB_SUID_DROP))
128//applet:IF_IPADDR(APPLET(ipaddr, BB_DIR_SBIN, BB_SUID_DROP)) 128//applet:IF_IPADDR(APPLET(ipaddr, BB_DIR_SBIN, BB_SUID_DROP))
diff --git a/networking/ipcalc.c b/networking/ipcalc.c
index 9359f9016..9888a6ff2 100644
--- a/networking/ipcalc.c
+++ b/networking/ipcalc.c
@@ -12,11 +12,11 @@
12 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 12 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
13 */ 13 */
14//config:config IPCALC 14//config:config IPCALC
15//config: bool "ipcalc" 15//config: bool "ipcalc (4.3 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: ipcalc takes an IP address and netmask and calculates the 18//config: ipcalc takes an IP address and netmask and calculates the
19//config: resulting broadcast, network, and host range. 19//config: resulting broadcast, network, and host range.
20//config: 20//config:
21//config:config FEATURE_IPCALC_LONG_OPTIONS 21//config:config FEATURE_IPCALC_LONG_OPTIONS
22//config: bool "Enable long options" 22//config: bool "Enable long options"
@@ -28,8 +28,8 @@
28//config: default y 28//config: default y
29//config: depends on IPCALC 29//config: depends on IPCALC
30//config: help 30//config: help
31//config: Adds the options hostname, prefix and silent to the output of 31//config: Adds the options hostname, prefix and silent to the output of
32//config: "ipcalc". 32//config: "ipcalc".
33 33
34//applet:IF_IPCALC(APPLET(ipcalc, BB_DIR_BIN, BB_SUID_DROP)) 34//applet:IF_IPCALC(APPLET(ipcalc, BB_DIR_BIN, BB_SUID_DROP))
35 35
diff --git a/networking/isrv_identd.c b/networking/isrv_identd.c
index 219c64b66..133d62a65 100644
--- a/networking/isrv_identd.c
+++ b/networking/isrv_identd.c
@@ -7,12 +7,12 @@
7 * Licensed under GPLv2, see file LICENSE in this source tree. 7 * Licensed under GPLv2, see file LICENSE in this source tree.
8 */ 8 */
9//config:config FAKEIDENTD 9//config:config FAKEIDENTD
10//config: bool "fakeidentd" 10//config: bool "fakeidentd (8.9 kb)"
11//config: default y 11//config: default y
12//config: select FEATURE_SYSLOG 12//config: select FEATURE_SYSLOG
13//config: help 13//config: help
14//config: fakeidentd listens on the ident port and returns a predefined 14//config: fakeidentd listens on the ident port and returns a predefined
15//config: fake value on any query. 15//config: fake value on any query.
16 16
17//applet:IF_FAKEIDENTD(APPLET(fakeidentd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 17//applet:IF_FAKEIDENTD(APPLET(fakeidentd, BB_DIR_USR_SBIN, BB_SUID_DROP))
18 18
diff --git a/networking/nameif.c b/networking/nameif.c
index cffd5bfde..31ee98a39 100644
--- a/networking/nameif.c
+++ b/networking/nameif.c
@@ -11,34 +11,34 @@
11 */ 11 */
12 12
13//config:config NAMEIF 13//config:config NAMEIF
14//config: bool "nameif" 14//config: bool "nameif (6.6 kb)"
15//config: default y 15//config: default y
16//config: select PLATFORM_LINUX 16//config: select PLATFORM_LINUX
17//config: select FEATURE_SYSLOG 17//config: select FEATURE_SYSLOG
18//config: help 18//config: help
19//config: nameif is used to rename network interface by its MAC address. 19//config: nameif is used to rename network interface by its MAC address.
20//config: Renamed interfaces MUST be in the down state. 20//config: Renamed interfaces MUST be in the down state.
21//config: It is possible to use a file (default: /etc/mactab) 21//config: It is possible to use a file (default: /etc/mactab)
22//config: with list of new interface names and MACs. 22//config: with list of new interface names and MACs.
23//config: Maximum interface name length: IFNAMSIZ = 16 23//config: Maximum interface name length: IFNAMSIZ = 16
24//config: File fields are separated by space or tab. 24//config: File fields are separated by space or tab.
25//config: File format: 25//config: File format:
26//config: # Comment 26//config: # Comment
27//config: new_interface_name XX:XX:XX:XX:XX:XX 27//config: new_interface_name XX:XX:XX:XX:XX:XX
28//config: 28//config:
29//config:config FEATURE_NAMEIF_EXTENDED 29//config:config FEATURE_NAMEIF_EXTENDED
30//config: bool "Extended nameif" 30//config: bool "Extended nameif"
31//config: default y 31//config: default y
32//config: depends on NAMEIF 32//config: depends on NAMEIF
33//config: help 33//config: help
34//config: This extends the nameif syntax to support the bus_info, driver, 34//config: This extends the nameif syntax to support the bus_info, driver,
35//config: phyaddr selectors. The syntax is compatible to the normal nameif. 35//config: phyaddr selectors. The syntax is compatible to the normal nameif.
36//config: File format: 36//config: File format:
37//config: new_interface_name driver=asix bus=usb-0000:00:08.2-3 37//config: new_interface_name driver=asix bus=usb-0000:00:08.2-3
38//config: new_interface_name bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5 38//config: new_interface_name bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5
39//config: new_interface_name phy_address=2 00:80:C8:38:91:B5 39//config: new_interface_name phy_address=2 00:80:C8:38:91:B5
40//config: new_interface_name mac=00:80:C8:38:91:B5 40//config: new_interface_name mac=00:80:C8:38:91:B5
41//config: new_interface_name 00:80:C8:38:91:B5 41//config: new_interface_name 00:80:C8:38:91:B5
42 42
43//applet:IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP)) 43//applet:IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
44 44
diff --git a/networking/nbd-client.c b/networking/nbd-client.c
index 70869d651..a5e25e6aa 100644
--- a/networking/nbd-client.c
+++ b/networking/nbd-client.c
@@ -12,10 +12,10 @@
12//kbuild:lib-$(CONFIG_NBDCLIENT) += nbd-client.o 12//kbuild:lib-$(CONFIG_NBDCLIENT) += nbd-client.o
13 13
14//config:config NBDCLIENT 14//config:config NBDCLIENT
15//config: bool "nbd-client" 15//config: bool "nbd-client (4.6 kb)"
16//config: default y 16//config: default y
17//config: help 17//config: help
18//config: Network block device client 18//config: Network block device client
19 19
20#define NBD_SET_SOCK _IO(0xab, 0) 20#define NBD_SET_SOCK _IO(0xab, 0)
21#define NBD_SET_BLKSIZE _IO(0xab, 1) 21#define NBD_SET_BLKSIZE _IO(0xab, 1)
diff --git a/networking/nc.c b/networking/nc.c
index 1b70434ac..df073d7df 100644
--- a/networking/nc.c
+++ b/networking/nc.c
@@ -7,37 +7,37 @@
7 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 7 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
8 */ 8 */
9//config:config NC 9//config:config NC
10//config: bool "nc" 10//config: bool "nc (11 kb)"
11//config: default y 11//config: default y
12//config: help 12//config: help
13//config: A simple Unix utility which reads and writes data across network 13//config: A simple Unix utility which reads and writes data across network
14//config: connections. 14//config: connections.
15//config: 15//config:
16//config:config NC_SERVER 16//config:config NC_SERVER
17//config: bool "Netcat server options (-l)" 17//config: bool "Netcat server options (-l)"
18//config: default y 18//config: default y
19//config: depends on NC 19//config: depends on NC
20//config: help 20//config: help
21//config: Allow netcat to act as a server. 21//config: Allow netcat to act as a server.
22//config: 22//config:
23//config:config NC_EXTRA 23//config:config NC_EXTRA
24//config: bool "Netcat extensions (-eiw and -f FILE)" 24//config: bool "Netcat extensions (-eiw and -f FILE)"
25//config: default y 25//config: default y
26//config: depends on NC 26//config: depends on NC
27//config: help 27//config: help
28//config: Add -e (support for executing the rest of the command line after 28//config: Add -e (support for executing the rest of the command line after
29//config: making or receiving a successful connection), -i (delay interval for 29//config: making or receiving a successful connection), -i (delay interval for
30//config: lines sent), -w (timeout for initial connection). 30//config: lines sent), -w (timeout for initial connection).
31//config: 31//config:
32//config:config NC_110_COMPAT 32//config:config NC_110_COMPAT
33//config: bool "Netcat 1.10 compatibility (+2.5k)" 33//config: bool "Netcat 1.10 compatibility (+2.5k)"
34//config: default n # off specially for Rob 34//config: default n # off specially for Rob
35//config: depends on NC 35//config: depends on NC
36//config: help 36//config: help
37//config: This option makes nc closely follow original nc-1.10. 37//config: This option makes nc closely follow original nc-1.10.
38//config: The code is about 2.5k bigger. It enables 38//config: The code is about 2.5k bigger. It enables
39//config: -s ADDR, -n, -u, -v, -o FILE, -z options, but loses 39//config: -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
40//config: busybox-specific extensions: -f FILE. 40//config: busybox-specific extensions: -f FILE.
41 41
42//applet:IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP)) 42//applet:IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
43 43
diff --git a/networking/netstat.c b/networking/netstat.c
index 68e0c1a04..33281e333 100644
--- a/networking/netstat.c
+++ b/networking/netstat.c
@@ -14,27 +14,27 @@
14 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 14 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
15 */ 15 */
16//config:config NETSTAT 16//config:config NETSTAT
17//config: bool "netstat" 17//config: bool "netstat (10 kb)"
18//config: default y 18//config: default y
19//config: select PLATFORM_LINUX 19//config: select PLATFORM_LINUX
20//config: help 20//config: help
21//config: netstat prints information about the Linux networking subsystem. 21//config: netstat prints information about the Linux networking subsystem.
22//config: 22//config:
23//config:config FEATURE_NETSTAT_WIDE 23//config:config FEATURE_NETSTAT_WIDE
24//config: bool "Enable wide output" 24//config: bool "Enable wide output"
25//config: default y 25//config: default y
26//config: depends on NETSTAT 26//config: depends on NETSTAT
27//config: help 27//config: help
28//config: Add support for wide columns. Useful when displaying IPv6 addresses 28//config: Add support for wide columns. Useful when displaying IPv6 addresses
29//config: (-W option). 29//config: (-W option).
30//config: 30//config:
31//config:config FEATURE_NETSTAT_PRG 31//config:config FEATURE_NETSTAT_PRG
32//config: bool "Enable PID/Program name output" 32//config: bool "Enable PID/Program name output"
33//config: default y 33//config: default y
34//config: depends on NETSTAT 34//config: depends on NETSTAT
35//config: help 35//config: help
36//config: Add support for -p flag to print out PID and program name. 36//config: Add support for -p flag to print out PID and program name.
37//config: +700 bytes of code. 37//config: +700 bytes of code.
38 38
39//applet:IF_NETSTAT(APPLET(netstat, BB_DIR_BIN, BB_SUID_DROP)) 39//applet:IF_NETSTAT(APPLET(netstat, BB_DIR_BIN, BB_SUID_DROP))
40 40
diff --git a/networking/nslookup.c b/networking/nslookup.c
index 8e3c8fed9..45c218e6c 100644
--- a/networking/nslookup.c
+++ b/networking/nslookup.c
@@ -11,10 +11,10 @@
11 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 11 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
12 */ 12 */
13//config:config NSLOOKUP 13//config:config NSLOOKUP
14//config: bool "nslookup" 14//config: bool "nslookup (4.5 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: nslookup is a tool to query Internet name servers. 17//config: nslookup is a tool to query Internet name servers.
18 18
19//applet:IF_NSLOOKUP(APPLET(nslookup, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_NSLOOKUP(APPLET(nslookup, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/networking/ntpd.c b/networking/ntpd.c
index 73d27ac20..f21f9513d 100644
--- a/networking/ntpd.c
+++ b/networking/ntpd.c
@@ -41,27 +41,27 @@
41 *********************************************************************** 41 ***********************************************************************
42 */ 42 */
43//config:config NTPD 43//config:config NTPD
44//config: bool "ntpd" 44//config: bool "ntpd (17 kb)"
45//config: default y 45//config: default y
46//config: select PLATFORM_LINUX 46//config: select PLATFORM_LINUX
47//config: help 47//config: help
48//config: The NTP client/server daemon. 48//config: The NTP client/server daemon.
49//config: 49//config:
50//config:config FEATURE_NTPD_SERVER 50//config:config FEATURE_NTPD_SERVER
51//config: bool "Make ntpd usable as a NTP server" 51//config: bool "Make ntpd usable as a NTP server"
52//config: default y 52//config: default y
53//config: depends on NTPD 53//config: depends on NTPD
54//config: help 54//config: help
55//config: Make ntpd usable as a NTP server. If you disable this option 55//config: Make ntpd usable as a NTP server. If you disable this option
56//config: ntpd will be usable only as a NTP client. 56//config: ntpd will be usable only as a NTP client.
57//config: 57//config:
58//config:config FEATURE_NTPD_CONF 58//config:config FEATURE_NTPD_CONF
59//config: bool "Make ntpd understand /etc/ntp.conf" 59//config: bool "Make ntpd understand /etc/ntp.conf"
60//config: default y 60//config: default y
61//config: depends on NTPD 61//config: depends on NTPD
62//config: help 62//config: help
63//config: Make ntpd look in /etc/ntp.conf for peers. Only "server address" 63//config: Make ntpd look in /etc/ntp.conf for peers. Only "server address"
64//config: is supported. 64//config: is supported.
65 65
66//applet:IF_NTPD(APPLET(ntpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 66//applet:IF_NTPD(APPLET(ntpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
67 67
diff --git a/networking/ping.c b/networking/ping.c
index 94fb007f5..506e7b11b 100644
--- a/networking/ping.c
+++ b/networking/ping.c
@@ -47,27 +47,28 @@
47#endif 47#endif
48 48
49//config:config PING 49//config:config PING
50//config: bool "ping" 50//config: bool "ping (9.5 kb)"
51//config: default y 51//config: default y
52//config: select PLATFORM_LINUX 52//config: select PLATFORM_LINUX
53//config: help 53//config: help
54//config: ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to 54//config: ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to
55//config: elicit an ICMP ECHO_RESPONSE from a host or gateway. 55//config: elicit an ICMP ECHO_RESPONSE from a host or gateway.
56//config: 56//config:
57//config:config PING6 57//config:config PING6
58//config: bool "ping6" 58//config: bool "ping6 (10 kb)"
59//config: default y 59//config: default y
60//config: depends on FEATURE_IPV6 60//config: depends on FEATURE_IPV6
61//config: help 61//config: help
62//config: This will give you a ping that can talk IPv6. 62//config: Alias to "ping -6".
63//config: 63//config:
64//config:config FEATURE_FANCY_PING 64//config:config FEATURE_FANCY_PING
65//config: bool "Enable fancy ping output" 65//config: bool "Enable fancy ping output"
66//config: default y 66//config: default y
67//config: depends on PING || PING6 67//config: depends on PING || PING6
68//config: help 68//config: help
69//config: Make the output from the ping applet include statistics, and at the 69//config: With this option off, ping will say "HOST is alive!"
70//config: same time provide full support for ICMP packets. 70//config: or terminate with SIGALRM in 5 seconds otherwise.
71//config: No command-line options will be recognized.
71 72
72/* Needs socket(AF_INET, SOCK_RAW, IPPROTO_ICMP), therefore BB_SUID_MAYBE: */ 73/* Needs socket(AF_INET, SOCK_RAW, IPPROTO_ICMP), therefore BB_SUID_MAYBE: */
73//applet:IF_PING(APPLET(ping, BB_DIR_BIN, BB_SUID_MAYBE)) 74//applet:IF_PING(APPLET(ping, BB_DIR_BIN, BB_SUID_MAYBE))
@@ -103,7 +104,7 @@
103//usage: "\n (can exit earlier with -c CNT)" 104//usage: "\n (can exit earlier with -c CNT)"
104//usage: "\n -q Quiet, only display output at start" 105//usage: "\n -q Quiet, only display output at start"
105//usage: "\n and when finished" 106//usage: "\n and when finished"
106//usage: "\n -p Pattern to use for payload" 107//usage: "\n -p HEXBYTE Pattern to use for payload"
107//usage: 108//usage:
108//usage:# define ping6_trivial_usage 109//usage:# define ping6_trivial_usage
109//usage: "[OPTIONS] HOST" 110//usage: "[OPTIONS] HOST"
@@ -114,7 +115,7 @@
114//usage: "\n -I IFACE/IP Source interface or IP address" 115//usage: "\n -I IFACE/IP Source interface or IP address"
115//usage: "\n -q Quiet, only display output at start" 116//usage: "\n -q Quiet, only display output at start"
116//usage: "\n and when finished" 117//usage: "\n and when finished"
117//usage: "\n -p Pattern to use for payload" 118//usage: "\n -p HEXBYTE Pattern to use for payload"
118//usage: 119//usage:
119//usage:#endif 120//usage:#endif
120//usage: 121//usage:
@@ -236,8 +237,6 @@ static void ping4(len_and_sockaddr *lsa)
236 break; 237 break;
237 } 238 }
238 } 239 }
239 if (ENABLE_FEATURE_CLEAN_UP)
240 close(pingsock);
241} 240}
242 241
243#if ENABLE_PING6 242#if ENABLE_PING6
@@ -280,8 +279,6 @@ static void ping6(len_and_sockaddr *lsa)
280 break; 279 break;
281 } 280 }
282 } 281 }
283 if (ENABLE_FEATURE_CLEAN_UP)
284 close(pingsock);
285} 282}
286#endif 283#endif
287 284
@@ -331,6 +328,8 @@ static int common_ping_main(sa_family_t af, char **argv)
331 else 328 else
332#endif 329#endif
333 ping4(lsa); 330 ping4(lsa);
331 if (ENABLE_FEATURE_CLEAN_UP)
332 close(pingsock);
334 printf("%s is alive!\n", G.hostname); 333 printf("%s is alive!\n", G.hostname);
335 return EXIT_SUCCESS; 334 return EXIT_SUCCESS;
336} 335}
diff --git a/networking/pscan.c b/networking/pscan.c
index 0893c3577..17985d2c8 100644
--- a/networking/pscan.c
+++ b/networking/pscan.c
@@ -6,10 +6,10 @@
6 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 6 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
7 */ 7 */
8//config:config PSCAN 8//config:config PSCAN
9//config: bool "pscan" 9//config: bool "pscan (6.6 kb)"
10//config: default y 10//config: default y
11//config: help 11//config: help
12//config: Simple network port scanner. 12//config: Simple network port scanner.
13 13
14//applet:IF_PSCAN(APPLET(pscan, BB_DIR_USR_BIN, BB_SUID_DROP)) 14//applet:IF_PSCAN(APPLET(pscan, BB_DIR_USR_BIN, BB_SUID_DROP))
15 15
diff --git a/networking/route.c b/networking/route.c
index 7dc2b5a3d..32789eecc 100644
--- a/networking/route.c
+++ b/networking/route.c
@@ -25,11 +25,11 @@
25 * remove ridiculous amounts of bloat. 25 * remove ridiculous amounts of bloat.
26 */ 26 */
27//config:config ROUTE 27//config:config ROUTE
28//config: bool "route" 28//config: bool "route (8.9 kb)"
29//config: default y 29//config: default y
30//config: select PLATFORM_LINUX 30//config: select PLATFORM_LINUX
31//config: help 31//config: help
32//config: Route displays or manipulates the kernel's IP routing tables. 32//config: Route displays or manipulates the kernel's IP routing tables.
33 33
34//applet:IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP)) 34//applet:IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP))
35 35
diff --git a/networking/slattach.c b/networking/slattach.c
index 9267eb1d0..71b5bf427 100644
--- a/networking/slattach.c
+++ b/networking/slattach.c
@@ -13,12 +13,12 @@
13 * - The -F options allows disabling of RTS/CTS flow control. 13 * - The -F options allows disabling of RTS/CTS flow control.
14 */ 14 */
15//config:config SLATTACH 15//config:config SLATTACH
16//config: bool "slattach" 16//config: bool "slattach (6.1 kb)"
17//config: default y 17//config: default y
18//config: select PLATFORM_LINUX 18//config: select PLATFORM_LINUX
19//config: help 19//config: help
20//config: slattach is a small utility to attach network interfaces to serial 20//config: slattach is a small utility to attach network interfaces to serial
21//config: lines. 21//config: lines.
22 22
23//applet:IF_SLATTACH(APPLET(slattach, BB_DIR_SBIN, BB_SUID_DROP)) 23//applet:IF_SLATTACH(APPLET(slattach, BB_DIR_SBIN, BB_SUID_DROP))
24 24
diff --git a/networking/ssl_client.c b/networking/ssl_client.c
index cfeae1587..d479846d7 100644
--- a/networking/ssl_client.c
+++ b/networking/ssl_client.c
@@ -4,11 +4,11 @@
4 * Licensed under GPLv2, see file LICENSE in this source tree. 4 * Licensed under GPLv2, see file LICENSE in this source tree.
5 */ 5 */
6//config:config SSL_CLIENT 6//config:config SSL_CLIENT
7//config: bool "ssl_client" 7//config: bool "ssl_client (23 kb)"
8//config: default y 8//config: default y
9//config: select TLS 9//config: select TLS
10//config: help 10//config: help
11//config: This tool pipes data to/from a socket, TLS-encrypting it. 11//config: This tool pipes data to/from a socket, TLS-encrypting it.
12 12
13//applet:IF_SSL_CLIENT(APPLET(ssl_client, BB_DIR_USR_BIN, BB_SUID_DROP)) 13//applet:IF_SSL_CLIENT(APPLET(ssl_client, BB_DIR_USR_BIN, BB_SUID_DROP))
14 14
diff --git a/networking/tcpudp.c b/networking/tcpudp.c
index 3ebe7d5fc..270325164 100644
--- a/networking/tcpudp.c
+++ b/networking/tcpudp.c
@@ -29,18 +29,18 @@
29 * - don't know how to retrieve ORIGDST for udp. 29 * - don't know how to retrieve ORIGDST for udp.
30 */ 30 */
31//config:config TCPSVD 31//config:config TCPSVD
32//config: bool "tcpsvd" 32//config: bool "tcpsvd (13 kb)"
33//config: default y 33//config: default y
34//config: help 34//config: help
35//config: tcpsvd listens on a TCP port and runs a program for each new 35//config: tcpsvd listens on a TCP port and runs a program for each new
36//config: connection. 36//config: connection.
37//config: 37//config:
38//config:config UDPSVD 38//config:config UDPSVD
39//config: bool "udpsvd" 39//config: bool "udpsvd (13 kb)"
40//config: default y 40//config: default y
41//config: help 41//config: help
42//config: udpsvd listens on an UDP port and runs a program for each new 42//config: udpsvd listens on an UDP port and runs a program for each new
43//config: connection. 43//config: connection.
44 44
45//applet:IF_TCPSVD(APPLET_ODDNAME(tcpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, tcpsvd)) 45//applet:IF_TCPSVD(APPLET_ODDNAME(tcpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, tcpsvd))
46//applet:IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd)) 46//applet:IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd))
diff --git a/networking/telnet.c b/networking/telnet.c
index a70f74762..9f191f7ad 100644
--- a/networking/telnet.c
+++ b/networking/telnet.c
@@ -21,30 +21,30 @@
21 * 21 *
22 */ 22 */
23//config:config TELNET 23//config:config TELNET
24//config: bool "telnet" 24//config: bool "telnet (8.7 kb)"
25//config: default y 25//config: default y
26//config: help 26//config: help
27//config: Telnet is an interface to the TELNET protocol, but is also commonly 27//config: Telnet is an interface to the TELNET protocol, but is also commonly
28//config: used to test other simple protocols. 28//config: used to test other simple protocols.
29//config: 29//config:
30//config:config FEATURE_TELNET_TTYPE 30//config:config FEATURE_TELNET_TTYPE
31//config: bool "Pass TERM type to remote host" 31//config: bool "Pass TERM type to remote host"
32//config: default y 32//config: default y
33//config: depends on TELNET 33//config: depends on TELNET
34//config: help 34//config: help
35//config: Setting this option will forward the TERM environment variable to the 35//config: Setting this option will forward the TERM environment variable to the
36//config: remote host you are connecting to. This is useful to make sure that 36//config: remote host you are connecting to. This is useful to make sure that
37//config: things like ANSI colors and other control sequences behave. 37//config: things like ANSI colors and other control sequences behave.
38//config: 38//config:
39//config:config FEATURE_TELNET_AUTOLOGIN 39//config:config FEATURE_TELNET_AUTOLOGIN
40//config: bool "Pass USER type to remote host" 40//config: bool "Pass USER type to remote host"
41//config: default y 41//config: default y
42//config: depends on TELNET 42//config: depends on TELNET
43//config: help 43//config: help
44//config: Setting this option will forward the USER environment variable to the 44//config: Setting this option will forward the USER environment variable to the
45//config: remote host you are connecting to. This is useful when you need to 45//config: remote host you are connecting to. This is useful when you need to
46//config: log into a machine without telling the username (autologin). This 46//config: log into a machine without telling the username (autologin). This
47//config: option enables `-a' and `-l USER' arguments. 47//config: option enables `-a' and `-l USER' arguments.
48//config: 48//config:
49//config:config FEATURE_TELNET_WIDTH 49//config:config FEATURE_TELNET_WIDTH
50//config: bool "Enable window size autodetection" 50//config: bool "Enable window size autodetection"
diff --git a/networking/telnetd.c b/networking/telnetd.c
index f06e9583e..6e12de07a 100644
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
@@ -21,73 +21,73 @@
21 * Set process group corrections, initial busybox port 21 * Set process group corrections, initial busybox port
22 */ 22 */
23//config:config TELNETD 23//config:config TELNETD
24//config: bool "telnetd" 24//config: bool "telnetd (12 kb)"
25//config: default y 25//config: default y
26//config: select FEATURE_SYSLOG 26//config: select FEATURE_SYSLOG
27//config: help 27//config: help
28//config: A daemon for the TELNET protocol, allowing you to log onto the host 28//config: A daemon for the TELNET protocol, allowing you to log onto the host
29//config: running the daemon. Please keep in mind that the TELNET protocol 29//config: running the daemon. Please keep in mind that the TELNET protocol
30//config: sends passwords in plain text. If you can't afford the space for an 30//config: sends passwords in plain text. If you can't afford the space for an
31//config: SSH daemon and you trust your network, you may say 'y' here. As a 31//config: SSH daemon and you trust your network, you may say 'y' here. As a
32//config: more secure alternative, you should seriously consider installing the 32//config: more secure alternative, you should seriously consider installing the
33//config: very small Dropbear SSH daemon instead: 33//config: very small Dropbear SSH daemon instead:
34//config: http://matt.ucc.asn.au/dropbear/dropbear.html 34//config: http://matt.ucc.asn.au/dropbear/dropbear.html
35//config: 35//config:
36//config: Note that for busybox telnetd to work you need several things: 36//config: Note that for busybox telnetd to work you need several things:
37//config: First of all, your kernel needs: 37//config: First of all, your kernel needs:
38//config: CONFIG_UNIX98_PTYS=y 38//config: CONFIG_UNIX98_PTYS=y
39//config: 39//config:
40//config: Next, you need a /dev/pts directory on your root filesystem: 40//config: Next, you need a /dev/pts directory on your root filesystem:
41//config: 41//config:
42//config: $ ls -ld /dev/pts 42//config: $ ls -ld /dev/pts
43//config: drwxr-xr-x 2 root root 0 Sep 23 13:21 /dev/pts/ 43//config: drwxr-xr-x 2 root root 0 Sep 23 13:21 /dev/pts/
44//config: 44//config:
45//config: Next you need the pseudo terminal master multiplexer /dev/ptmx: 45//config: Next you need the pseudo terminal master multiplexer /dev/ptmx:
46//config: 46//config:
47//config: $ ls -la /dev/ptmx 47//config: $ ls -la /dev/ptmx
48//config: crw-rw-rw- 1 root tty 5, 2 Sep 23 13:55 /dev/ptmx 48//config: crw-rw-rw- 1 root tty 5, 2 Sep 23 13:55 /dev/ptmx
49//config: 49//config:
50//config: Any /dev/ttyp[0-9]* files you may have can be removed. 50//config: Any /dev/ttyp[0-9]* files you may have can be removed.
51//config: Next, you need to mount the devpts filesystem on /dev/pts using: 51//config: Next, you need to mount the devpts filesystem on /dev/pts using:
52//config: 52//config:
53//config: mount -t devpts devpts /dev/pts 53//config: mount -t devpts devpts /dev/pts
54//config: 54//config:
55//config: You need to be sure that busybox has LOGIN and 55//config: You need to be sure that busybox has LOGIN and
56//config: FEATURE_SUID enabled. And finally, you should make 56//config: FEATURE_SUID enabled. And finally, you should make
57//config: certain that Busybox has been installed setuid root: 57//config: certain that Busybox has been installed setuid root:
58//config: 58//config:
59//config: chown root.root /bin/busybox 59//config: chown root.root /bin/busybox
60//config: chmod 4755 /bin/busybox 60//config: chmod 4755 /bin/busybox
61//config: 61//config:
62//config: with all that done, telnetd _should_ work.... 62//config: with all that done, telnetd _should_ work....
63//config: 63//config:
64//config:config FEATURE_TELNETD_STANDALONE 64//config:config FEATURE_TELNETD_STANDALONE
65//config: bool "Support standalone telnetd (not inetd only)" 65//config: bool "Support standalone telnetd (not inetd only)"
66//config: default y 66//config: default y
67//config: depends on TELNETD 67//config: depends on TELNETD
68//config: help 68//config: help
69//config: Selecting this will make telnetd able to run standalone. 69//config: Selecting this will make telnetd able to run standalone.
70//config: 70//config:
71//config:config FEATURE_TELNETD_INETD_WAIT 71//config:config FEATURE_TELNETD_INETD_WAIT
72//config: bool "Support -w SEC option (inetd wait mode)" 72//config: bool "Support -w SEC option (inetd wait mode)"
73//config: default y 73//config: default y
74//config: depends on FEATURE_TELNETD_STANDALONE 74//config: depends on FEATURE_TELNETD_STANDALONE
75//config: help 75//config: help
76//config: This option allows you to run telnetd in "inet wait" mode. 76//config: This option allows you to run telnetd in "inet wait" mode.
77//config: Example inetd.conf line (note "wait", not usual "nowait"): 77//config: Example inetd.conf line (note "wait", not usual "nowait"):
78//config: 78//config:
79//config: telnet stream tcp wait root /bin/telnetd telnetd -w10 79//config: telnet stream tcp wait root /bin/telnetd telnetd -w10
80//config: 80//config:
81//config: In this example, inetd passes _listening_ socket_ as fd 0 81//config: In this example, inetd passes _listening_ socket_ as fd 0
82//config: to telnetd when connection appears. 82//config: to telnetd when connection appears.
83//config: telnetd will wait for connections until all existing 83//config: telnetd will wait for connections until all existing
84//config: connections are closed, and no new connections 84//config: connections are closed, and no new connections
85//config: appear during 10 seconds. Then it exits, and inetd continues 85//config: appear during 10 seconds. Then it exits, and inetd continues
86//config: to listen for new connections. 86//config: to listen for new connections.
87//config: 87//config:
88//config: This option is rarely used. "tcp nowait" is much more usual 88//config: This option is rarely used. "tcp nowait" is much more usual
89//config: way of running tcp services, including telnetd. 89//config: way of running tcp services, including telnetd.
90//config: You most probably want to say N here. 90//config: You most probably want to say N here.
91 91
92//applet:IF_TELNETD(APPLET(telnetd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 92//applet:IF_TELNETD(APPLET(telnetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
93 93
diff --git a/networking/tftp.c b/networking/tftp.c
index 189364f0c..947e65169 100644
--- a/networking/tftp.c
+++ b/networking/tftp.c
@@ -19,22 +19,22 @@
19 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 19 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
20 */ 20 */
21//config:config TFTP 21//config:config TFTP
22//config: bool "tftp" 22//config: bool "tftp (12 kb)"
23//config: default y 23//config: default y
24//config: help 24//config: help
25//config: This enables the Trivial File Transfer Protocol client program. TFTP 25//config: This enables the Trivial File Transfer Protocol client program. TFTP
26//config: is usually used for simple, small transfers such as a root image 26//config: is usually used for simple, small transfers such as a root image
27//config: for a network-enabled bootloader. 27//config: for a network-enabled bootloader.
28//config: 28//config:
29//config:config TFTPD 29//config:config TFTPD
30//config: bool "tftpd" 30//config: bool "tftpd (10 kb)"
31//config: default y 31//config: default y
32//config: help 32//config: help
33//config: This enables the Trivial File Transfer Protocol server program. 33//config: This enables the Trivial File Transfer Protocol server program.
34//config: It expects that stdin is a datagram socket and a packet 34//config: It expects that stdin is a datagram socket and a packet
35//config: is already pending on it. It will exit after one transfer. 35//config: is already pending on it. It will exit after one transfer.
36//config: In other words: it should be run from inetd in nowait mode, 36//config: In other words: it should be run from inetd in nowait mode,
37//config: or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR" 37//config: or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
38//config: 38//config:
39//config:comment "Common options for tftp/tftpd" 39//config:comment "Common options for tftp/tftpd"
40//config: depends on TFTP || TFTPD 40//config: depends on TFTP || TFTPD
@@ -44,29 +44,29 @@
44//config: default y 44//config: default y
45//config: depends on TFTP || TFTPD 45//config: depends on TFTP || TFTPD
46//config: help 46//config: help
47//config: Add support for the GET command within the TFTP client. This allows 47//config: Add support for the GET command within the TFTP client. This allows
48//config: a client to retrieve a file from a TFTP server. 48//config: a client to retrieve a file from a TFTP server.
49//config: Also enable upload support in tftpd, if tftpd is selected. 49//config: Also enable upload support in tftpd, if tftpd is selected.
50//config: 50//config:
51//config: Note: this option does _not_ make tftpd capable of download 51//config: Note: this option does _not_ make tftpd capable of download
52//config: (the usual operation people need from it)! 52//config: (the usual operation people need from it)!
53//config: 53//config:
54//config:config FEATURE_TFTP_PUT 54//config:config FEATURE_TFTP_PUT
55//config: bool "Enable 'tftp put' and/or tftpd download code" 55//config: bool "Enable 'tftp put' and/or tftpd download code"
56//config: default y 56//config: default y
57//config: depends on TFTP || TFTPD 57//config: depends on TFTP || TFTPD
58//config: help 58//config: help
59//config: Add support for the PUT command within the TFTP client. This allows 59//config: Add support for the PUT command within the TFTP client. This allows
60//config: a client to transfer a file to a TFTP server. 60//config: a client to transfer a file to a TFTP server.
61//config: Also enable download support in tftpd, if tftpd is selected. 61//config: Also enable download support in tftpd, if tftpd is selected.
62//config: 62//config:
63//config:config FEATURE_TFTP_BLOCKSIZE 63//config:config FEATURE_TFTP_BLOCKSIZE
64//config: bool "Enable 'blksize' and 'tsize' protocol options" 64//config: bool "Enable 'blksize' and 'tsize' protocol options"
65//config: default y 65//config: default y
66//config: depends on TFTP || TFTPD 66//config: depends on TFTP || TFTPD
67//config: help 67//config: help
68//config: Allow tftp to specify block size, and tftpd to understand 68//config: Allow tftp to specify block size, and tftpd to understand
69//config: "blksize" and "tsize" options. 69//config: "blksize" and "tsize" options.
70//config: 70//config:
71//config:config FEATURE_TFTP_PROGRESS_BAR 71//config:config FEATURE_TFTP_PROGRESS_BAR
72//config: bool "Enable progress bar" 72//config: bool "Enable progress bar"
@@ -78,8 +78,8 @@
78//config: default n 78//config: default n
79//config: depends on TFTP || TFTPD 79//config: depends on TFTP || TFTPD
80//config: help 80//config: help
81//config: Make tftp[d] print debugging messages on stderr. 81//config: Make tftp[d] print debugging messages on stderr.
82//config: This is useful if you are diagnosing a bug in tftp[d]. 82//config: This is useful if you are diagnosing a bug in tftp[d].
83 83
84//applet:#if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT 84//applet:#if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT
85//applet:IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP)) 85//applet:IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP))
diff --git a/networking/traceroute.c b/networking/traceroute.c
index 6817861ef..a958a2c6c 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -210,26 +210,26 @@
210 * Tue Dec 20 03:50:13 PST 1988 210 * Tue Dec 20 03:50:13 PST 1988
211 */ 211 */
212//config:config TRACEROUTE 212//config:config TRACEROUTE
213//config: bool "traceroute" 213//config: bool "traceroute (11 kb)"
214//config: default y 214//config: default y
215//config: select PLATFORM_LINUX 215//config: select PLATFORM_LINUX
216//config: help 216//config: help
217//config: Utility to trace the route of IP packets. 217//config: Utility to trace the route of IP packets.
218//config: 218//config:
219//config:config TRACEROUTE6 219//config:config TRACEROUTE6
220//config: bool "traceroute6" 220//config: bool "traceroute6 (12 kb)"
221//config: default y 221//config: default y
222//config: depends on FEATURE_IPV6 222//config: depends on FEATURE_IPV6
223//config: help 223//config: help
224//config: Utility to trace the route of IPv6 packets. 224//config: Utility to trace the route of IPv6 packets.
225//config: 225//config:
226//config:config FEATURE_TRACEROUTE_VERBOSE 226//config:config FEATURE_TRACEROUTE_VERBOSE
227//config: bool "Enable verbose output" 227//config: bool "Enable verbose output"
228//config: default y 228//config: default y
229//config: depends on TRACEROUTE || TRACEROUTE6 229//config: depends on TRACEROUTE || TRACEROUTE6
230//config: help 230//config: help
231//config: Add some verbosity to traceroute. This includes among other things 231//config: Add some verbosity to traceroute. This includes among other things
232//config: hostnames and ICMP response types. 232//config: hostnames and ICMP response types.
233//config: 233//config:
234//config:config FEATURE_TRACEROUTE_USE_ICMP 234//config:config FEATURE_TRACEROUTE_USE_ICMP
235//config: bool "Enable -I option (use ICMP instead of UDP)" 235//config: bool "Enable -I option (use ICMP instead of UDP)"
diff --git a/networking/tunctl.c b/networking/tunctl.c
index fa904c2a9..0a26ff7fb 100644
--- a/networking/tunctl.c
+++ b/networking/tunctl.c
@@ -10,19 +10,19 @@
10 * Licensed under GPLv2, see file LICENSE in this source tree. 10 * Licensed under GPLv2, see file LICENSE in this source tree.
11 */ 11 */
12//config:config TUNCTL 12//config:config TUNCTL
13//config: bool "tunctl" 13//config: bool "tunctl (6.4 kb)"
14//config: default y 14//config: default y
15//config: select PLATFORM_LINUX 15//config: select PLATFORM_LINUX
16//config: help 16//config: help
17//config: tunctl creates or deletes tun devices. 17//config: tunctl creates or deletes tun devices.
18//config: 18//config:
19//config:config FEATURE_TUNCTL_UG 19//config:config FEATURE_TUNCTL_UG
20//config: bool "Support owner:group assignment" 20//config: bool "Support owner:group assignment"
21//config: default y 21//config: default y
22//config: depends on TUNCTL 22//config: depends on TUNCTL
23//config: help 23//config: help
24//config: Allow to specify owner and group of newly created interface. 24//config: Allow to specify owner and group of newly created interface.
25//config: 340 bytes of pure bloat. Say no here. 25//config: 340 bytes of pure bloat. Say no here.
26 26
27//applet:IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP)) 27//applet:IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP))
28 28
diff --git a/networking/udhcp/Config.src b/networking/udhcp/Config.src
index 5c068441a..af2fe1835 100644
--- a/networking/udhcp/Config.src
+++ b/networking/udhcp/Config.src
@@ -10,105 +10,105 @@ config UDHCPD
10 default y 10 default y
11 select PLATFORM_LINUX 11 select PLATFORM_LINUX
12 help 12 help
13 udhcpd is a DHCP server geared primarily toward embedded systems, 13 udhcpd is a DHCP server geared primarily toward embedded systems,
14 while striving to be fully functional and RFC compliant. 14 while striving to be fully functional and RFC compliant.
15 15
16config FEATURE_UDHCPD_WRITE_LEASES_EARLY 16config FEATURE_UDHCPD_WRITE_LEASES_EARLY
17 bool "Rewrite the lease file at every new acknowledge" 17 bool "Rewrite the lease file at every new acknowledge"
18 default y 18 default y
19 depends on UDHCPD 19 depends on UDHCPD
20 help 20 help
21 If selected, udhcpd will write a new file with leases every 21 If selected, udhcpd will write a new file with leases every
22 time a new lease has been accepted, thus eliminating the need 22 time a new lease has been accepted, thus eliminating the need
23 to send SIGUSR1 for the initial writing or updating. Any timed 23 to send SIGUSR1 for the initial writing or updating. Any timed
24 rewriting remains undisturbed. 24 rewriting remains undisturbed.
25 25
26config FEATURE_UDHCPD_BASE_IP_ON_MAC 26config FEATURE_UDHCPD_BASE_IP_ON_MAC
27 bool "Select IP address based on client MAC" 27 bool "Select IP address based on client MAC"
28 default n 28 default n
29 depends on UDHCPD 29 depends on UDHCPD
30 help 30 help
31 If selected, udhcpd will base its selection of IP address to offer 31 If selected, udhcpd will base its selection of IP address to offer
32 on the client's hardware address. Otherwise udhcpd uses the next 32 on the client's hardware address. Otherwise udhcpd uses the next
33 consecutive free address. 33 consecutive free address.
34 34
35 This reduces the frequency of IP address changes for clients 35 This reduces the frequency of IP address changes for clients
36 which let their lease expire, and makes consecutive DHCPOFFERS 36 which let their lease expire, and makes consecutive DHCPOFFERS
37 for the same client to (almost always) contain the same 37 for the same client to (almost always) contain the same
38 IP address. 38 IP address.
39 39
40config DHCPD_LEASES_FILE 40config DHCPD_LEASES_FILE
41 string "Absolute path to lease file" 41 string "Absolute path to lease file"
42 default "/var/lib/misc/udhcpd.leases" 42 default "/var/lib/misc/udhcpd.leases"
43 depends on UDHCPD 43 depends on UDHCPD
44 help 44 help
45 udhcpd stores addresses in a lease file. This is the absolute path 45 udhcpd stores addresses in a lease file. This is the absolute path
46 of the file. Normally it is safe to leave it untouched. 46 of the file. Normally it is safe to leave it untouched.
47 47
48config DUMPLEASES 48config DUMPLEASES
49 bool "dumpleases" 49 bool "dumpleases (6.4 kb)"
50 default y 50 default y
51 help 51 help
52 dumpleases displays the leases written out by the udhcpd. 52 dumpleases displays the leases written out by the udhcpd.
53 Lease times are stored in the file by time remaining in lease, or 53 Lease times are stored in the file by time remaining in lease, or
54 by the absolute time that it expires in seconds from epoch. 54 by the absolute time that it expires in seconds from epoch.
55 55
56config DHCPRELAY 56config DHCPRELAY
57 bool "dhcprelay" 57 bool "dhcprelay (5.8 kb)"
58 default y 58 default y
59 help 59 help
60 dhcprelay listens for dhcp requests on one or more interfaces 60 dhcprelay listens for dhcp requests on one or more interfaces
61 and forwards these requests to a different interface or dhcp 61 and forwards these requests to a different interface or dhcp
62 server. 62 server.
63 63
64config UDHCPC 64config UDHCPC
65 bool "udhcpc (DHCP client)" 65 bool "udhcpc (DHCP client)"
66 default y 66 default y
67 select PLATFORM_LINUX 67 select PLATFORM_LINUX
68 help 68 help
69 udhcpc is a DHCP client geared primarily toward embedded systems, 69 udhcpc is a DHCP client geared primarily toward embedded systems,
70 while striving to be fully functional and RFC compliant. 70 while striving to be fully functional and RFC compliant.
71 71
72 The udhcp client negotiates a lease with the DHCP server and 72 The udhcp client negotiates a lease with the DHCP server and
73 runs a script when a lease is obtained or lost. 73 runs a script when a lease is obtained or lost.
74 74
75config FEATURE_UDHCPC_ARPING 75config FEATURE_UDHCPC_ARPING
76 bool "Verify that the offered address is free, using ARP ping" 76 bool "Verify that the offered address is free, using ARP ping"
77 default y 77 default y
78 depends on UDHCPC 78 depends on UDHCPC
79 help 79 help
80 If selected, udhcpc will send ARP probes and make sure 80 If selected, udhcpc will send ARP probes and make sure
81 the offered address is really not in use by anyone. The client 81 the offered address is really not in use by anyone. The client
82 will DHCPDECLINE the offer if the address is in use, 82 will DHCPDECLINE the offer if the address is in use,
83 and restart the discover process. 83 and restart the discover process.
84 84
85config FEATURE_UDHCPC_SANITIZEOPT 85config FEATURE_UDHCPC_SANITIZEOPT
86 bool "Do not pass malformed host and domain names" 86 bool "Do not pass malformed host and domain names"
87 default y 87 default y
88 depends on UDHCPC 88 depends on UDHCPC
89 help 89 help
90 If selected, udhcpc will check some options (such as option 12 - 90 If selected, udhcpc will check some options (such as option 12 -
91 hostname) and if they don't look like valid hostnames 91 hostname) and if they don't look like valid hostnames
92 (for example, if they start with dash or contain spaces), 92 (for example, if they start with dash or contain spaces),
93 they will be replaced with string "bad" when exporting 93 they will be replaced with string "bad" when exporting
94 to the environment. 94 to the environment.
95 95
96config UDHCPC_DEFAULT_SCRIPT 96config UDHCPC_DEFAULT_SCRIPT
97 string "Absolute path to config script" 97 string "Absolute path to config script"
98 default "/usr/share/udhcpc/default.script" 98 default "/usr/share/udhcpc/default.script"
99 depends on UDHCPC 99 depends on UDHCPC
100 help 100 help
101 This script is called after udhcpc receives an answer. See 101 This script is called after udhcpc receives an answer. See
102 examples/udhcp for a working example. Normally it is safe 102 examples/udhcp for a working example. Normally it is safe
103 to leave this untouched. 103 to leave this untouched.
104 104
105config FEATURE_UDHCP_PORT 105config FEATURE_UDHCP_PORT
106 bool "Enable '-P port' option for udhcpd and udhcpc" 106 bool "Enable '-P port' option for udhcpd and udhcpc"
107 default n 107 default n
108 depends on UDHCPD || UDHCPC 108 depends on UDHCPD || UDHCPC
109 help 109 help
110 At the cost of ~300 bytes, enables -P port option. 110 At the cost of ~300 bytes, enables -P port option.
111 This feature is typically not needed. 111 This feature is typically not needed.
112 112
113config UDHCP_DEBUG 113config UDHCP_DEBUG
114 int "Maximum verbosity level for udhcp applets (0..9)" 114 int "Maximum verbosity level for udhcp applets (0..9)"
@@ -116,28 +116,28 @@ config UDHCP_DEBUG
116 range 0 9 116 range 0 9
117 depends on UDHCPD || UDHCPC || DHCPRELAY 117 depends on UDHCPD || UDHCPC || DHCPRELAY
118 help 118 help
119 Verbosity can be increased with multiple -v options. 119 Verbosity can be increased with multiple -v options.
120 This option controls how high it can be cranked up. 120 This option controls how high it can be cranked up.
121 121
122 Bigger values result in bigger code. Levels above 1 122 Bigger values result in bigger code. Levels above 1
123 are very verbose and useful for debugging only. 123 are very verbose and useful for debugging only.
124 124
125config FEATURE_UDHCP_RFC3397 125config FEATURE_UDHCP_RFC3397
126 bool "Support RFC3397 domain search (experimental)" 126 bool "Support RFC3397 domain search (experimental)"
127 default y 127 default y
128 depends on UDHCPD || UDHCPC 128 depends on UDHCPD || UDHCPC
129 help 129 help
130 If selected, both client and server will support passing of domain 130 If selected, both client and server will support passing of domain
131 search lists via option 119, specified in RFC 3397, 131 search lists via option 119, specified in RFC 3397,
132 and SIP servers option 120, specified in RFC 3361. 132 and SIP servers option 120, specified in RFC 3361.
133 133
134config FEATURE_UDHCP_8021Q 134config FEATURE_UDHCP_8021Q
135 bool "Support 802.1Q VLAN parameters" 135 bool "Support 802.1Q VLAN parameters"
136 default y 136 default y
137 depends on UDHCPD || UDHCPC 137 depends on UDHCPD || UDHCPC
138 help 138 help
139 If selected, both client and server will support passing of VLAN 139 If selected, both client and server will support passing of VLAN
140 ID and priority via options 132 and 133 as per 802.1Q. 140 ID and priority via options 132 and 133 as per 802.1Q.
141 141
142config UDHCPC_SLACK_FOR_BUGGY_SERVERS 142config UDHCPC_SLACK_FOR_BUGGY_SERVERS
143 int "DHCP options slack buffer size" 143 int "DHCP options slack buffer size"
@@ -145,19 +145,19 @@ config UDHCPC_SLACK_FOR_BUGGY_SERVERS
145 range 0 924 145 range 0 924
146 depends on UDHCPD || UDHCPC 146 depends on UDHCPD || UDHCPC
147 help 147 help
148 Some buggy DHCP servers send DHCP offer packets with option 148 Some buggy DHCP servers send DHCP offer packets with option
149 field larger than we expect (which might also be considered a 149 field larger than we expect (which might also be considered a
150 buffer overflow attempt). These packets are normally discarded. 150 buffer overflow attempt). These packets are normally discarded.
151 If circumstances beyond your control force you to support such 151 If circumstances beyond your control force you to support such
152 servers, this may help. The upper limit (924) makes dhcpc accept 152 servers, this may help. The upper limit (924) makes dhcpc accept
153 even 1500 byte packets (maximum-sized ethernet packets). 153 even 1500 byte packets (maximum-sized ethernet packets).
154 154
155 This option does not make dhcp[cd] emit non-standard 155 This option does not make dhcp[cd] emit non-standard
156 sized packets. 156 sized packets.
157 157
158 Known buggy DHCP servers: 158 Known buggy DHCP servers:
159 3Com OfficeConnect Remote 812 ADSL Router: 159 3Com OfficeConnect Remote 812 ADSL Router:
160 seems to confuse maximum allowed UDP packet size with 160 seems to confuse maximum allowed UDP packet size with
161 maximum size of entire IP packet, and sends packets which are 161 maximum size of entire IP packet, and sends packets
162 28 bytes too large. 162 which are 28 bytes too large.
163 Seednet (ISP) VDSL: sends packets 2 bytes too large. 163 Seednet (ISP) VDSL: sends packets 2 bytes too large.
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
index f6d3fb98b..5ebd05d01 100644
--- a/networking/udhcp/d6_dhcpc.c
+++ b/networking/udhcp/d6_dhcpc.c
@@ -14,31 +14,31 @@
14//config: default n # not yet ready 14//config: default n # not yet ready
15//config: depends on FEATURE_IPV6 15//config: depends on FEATURE_IPV6
16//config: help 16//config: help
17//config: udhcpc6 is a DHCPv6 client 17//config: udhcpc6 is a DHCPv6 client
18//config: 18//config:
19//config:config FEATURE_UDHCPC6_RFC3646 19//config:config FEATURE_UDHCPC6_RFC3646
20//config: bool "Support RFC 3646 (DNS server and search list)" 20//config: bool "Support RFC 3646 (DNS server and search list)"
21//config: default y 21//config: default y
22//config: depends on UDHCPC6 22//config: depends on UDHCPC6
23//config: help 23//config: help
24//config: List of DNS servers and domain search list can be requested with 24//config: List of DNS servers and domain search list can be requested with
25//config: "-O dns" and "-O search". If server gives these values, 25//config: "-O dns" and "-O search". If server gives these values,
26//config: they will be set in environment variables "dns" and "search". 26//config: they will be set in environment variables "dns" and "search".
27//config: 27//config:
28//config:config FEATURE_UDHCPC6_RFC4704 28//config:config FEATURE_UDHCPC6_RFC4704
29//config: bool "Support RFC 4704 (Client FQDN)" 29//config: bool "Support RFC 4704 (Client FQDN)"
30//config: default y 30//config: default y
31//config: depends on UDHCPC6 31//config: depends on UDHCPC6
32//config: help 32//config: help
33//config: You can request FQDN to be given by server using "-O fqdn". 33//config: You can request FQDN to be given by server using "-O fqdn".
34//config: 34//config:
35//config:config FEATURE_UDHCPC6_RFC4833 35//config:config FEATURE_UDHCPC6_RFC4833
36//config: bool "Support RFC 4833 (Timezones)" 36//config: bool "Support RFC 4833 (Timezones)"
37//config: default y 37//config: default y
38//config: depends on UDHCPC6 38//config: depends on UDHCPC6
39//config: help 39//config: help
40//config: You can request POSIX timezone with "-O tz" and timezone name 40//config: You can request POSIX timezone with "-O tz" and timezone name
41//config: with "-O timezone". 41//config: with "-O timezone".
42 42
43//applet:IF_UDHCPC6(APPLET(udhcpc6, BB_DIR_USR_BIN, BB_SUID_DROP)) 43//applet:IF_UDHCPC6(APPLET(udhcpc6, BB_DIR_USR_BIN, BB_SUID_DROP))
44 44
@@ -877,10 +877,10 @@ static int d6_raw_socket(int ifindex)
877 }; 877 };
878#endif 878#endif
879 879
880 log1("opening raw socket on ifindex %d", ifindex); //log2? 880 log2("opening raw socket on ifindex %d", ifindex);
881 881
882 fd = xsocket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IPV6)); 882 fd = xsocket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IPV6));
883 log1("got raw socket fd %d", fd); //log2? 883 log2("got raw socket fd %d", fd);
884 884
885 sock.sll_family = AF_PACKET; 885 sock.sll_family = AF_PACKET;
886 sock.sll_protocol = htons(ETH_P_IPV6); 886 sock.sll_protocol = htons(ETH_P_IPV6);
@@ -1238,7 +1238,7 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
1238 retval = 0; 1238 retval = 0;
1239 /* If we already timed out, fall through with retval = 0, else... */ 1239 /* If we already timed out, fall through with retval = 0, else... */
1240 if (tv > 0) { 1240 if (tv > 0) {
1241 log1("waiting on select %u seconds", tv); 1241 log1("waiting %u seconds", tv);
1242 timestamp_before_wait = (unsigned)monotonic_sec(); 1242 timestamp_before_wait = (unsigned)monotonic_sec();
1243 retval = poll(pfds, 2, tv < INT_MAX/1000 ? tv * 1000 : INT_MAX); 1243 retval = poll(pfds, 2, tv < INT_MAX/1000 ? tv * 1000 : INT_MAX);
1244 if (retval < 0) { 1244 if (retval < 0) {
@@ -1248,7 +1248,7 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
1248 continue; 1248 continue;
1249 } 1249 }
1250 /* Else: an error occured, panic! */ 1250 /* Else: an error occured, panic! */
1251 bb_perror_msg_and_die("select"); 1251 bb_perror_msg_and_die("poll");
1252 } 1252 }
1253 } 1253 }
1254 1254
diff --git a/networking/udhcp/d6_socket.c b/networking/udhcp/d6_socket.c
index 930e5e4f5..d00c217d6 100644
--- a/networking/udhcp/d6_socket.c
+++ b/networking/udhcp/d6_socket.c
@@ -28,8 +28,8 @@ int FAST_FUNC d6_read_interface(const char *interface, int *ifindex, struct in6_
28 if (ifa->ifa_addr->sa_family == AF_PACKET) { 28 if (ifa->ifa_addr->sa_family == AF_PACKET) {
29 struct sockaddr_ll *sll = (struct sockaddr_ll*)(ifa->ifa_addr); 29 struct sockaddr_ll *sll = (struct sockaddr_ll*)(ifa->ifa_addr);
30 memcpy(mac, sll->sll_addr, 6); 30 memcpy(mac, sll->sll_addr, 6);
31 log1("MAC %02x:%02x:%02x:%02x:%02x:%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); 31 log2("MAC %02x:%02x:%02x:%02x:%02x:%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
32 log1("adapter index %d", sll->sll_ifindex); 32 log2("ifindex %d", sll->sll_ifindex);
33 *ifindex = sll->sll_ifindex; 33 *ifindex = sll->sll_ifindex;
34 retval &= (0xf - (1<<0)); 34 retval &= (0xf - (1<<0));
35 } 35 }
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index 1a66c610e..ccf04993d 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -1001,14 +1001,14 @@ static int udhcp_raw_socket(int ifindex)
1001 int fd; 1001 int fd;
1002 struct sockaddr_ll sock; 1002 struct sockaddr_ll sock;
1003 1003
1004 log1("opening raw socket on ifindex %d", ifindex); //log2? 1004 log2("opening raw socket on ifindex %d", ifindex);
1005 1005
1006 fd = xsocket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP)); 1006 fd = xsocket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP));
1007 /* ^^^^^ 1007 /* ^^^^^
1008 * SOCK_DGRAM: remove link-layer headers on input (SOCK_RAW keeps them) 1008 * SOCK_DGRAM: remove link-layer headers on input (SOCK_RAW keeps them)
1009 * ETH_P_IP: want to receive only packets with IPv4 eth type 1009 * ETH_P_IP: want to receive only packets with IPv4 eth type
1010 */ 1010 */
1011 log1("got raw socket fd"); //log2? 1011 log2("got raw socket fd");
1012 1012
1013 sock.sll_family = AF_PACKET; 1013 sock.sll_family = AF_PACKET;
1014 sock.sll_protocol = htons(ETH_P_IP); 1014 sock.sll_protocol = htons(ETH_P_IP);
@@ -1455,7 +1455,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
1455 retval = 0; 1455 retval = 0;
1456 /* If we already timed out, fall through with retval = 0, else... */ 1456 /* If we already timed out, fall through with retval = 0, else... */
1457 if (tv > 0) { 1457 if (tv > 0) {
1458 log1("waiting on select %u seconds", tv); 1458 log1("waiting %u seconds", tv);
1459 timestamp_before_wait = (unsigned)monotonic_sec(); 1459 timestamp_before_wait = (unsigned)monotonic_sec();
1460 retval = poll(pfds, 2, tv < INT_MAX/1000 ? tv * 1000 : INT_MAX); 1460 retval = poll(pfds, 2, tv < INT_MAX/1000 ? tv * 1000 : INT_MAX);
1461 if (retval < 0) { 1461 if (retval < 0) {
@@ -1465,7 +1465,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
1465 continue; 1465 continue;
1466 } 1466 }
1467 /* Else: an error occurred, panic! */ 1467 /* Else: an error occurred, panic! */
1468 bb_perror_msg_and_die("select"); 1468 bb_perror_msg_and_die("poll");
1469 } 1469 }
1470 } 1470 }
1471 1471
diff --git a/networking/udhcp/socket.c b/networking/udhcp/socket.c
index 4fd79f423..ec6a1dc0f 100644
--- a/networking/udhcp/socket.c
+++ b/networking/udhcp/socket.c
@@ -56,7 +56,7 @@ int FAST_FUNC udhcp_read_interface(const char *interface, int *ifindex, uint32_t
56 close(fd); 56 close(fd);
57 return -1; 57 return -1;
58 } 58 }
59 log1("adapter index %d", ifr->ifr_ifindex); 59 log2("ifindex %d", ifr->ifr_ifindex);
60 *ifindex = ifr->ifr_ifindex; 60 *ifindex = ifr->ifr_ifindex;
61 } 61 }
62 62
diff --git a/networking/vconfig.c b/networking/vconfig.c
index 854eca0a1..e6e2872bf 100644
--- a/networking/vconfig.c
+++ b/networking/vconfig.c
@@ -10,11 +10,11 @@
10/* BB_AUDIT SUSv3 N/A */ 10/* BB_AUDIT SUSv3 N/A */
11 11
12//config:config VCONFIG 12//config:config VCONFIG
13//config: bool "vconfig" 13//config: bool "vconfig (2.5 kb)"
14//config: default y 14//config: default y
15//config: select PLATFORM_LINUX 15//config: select PLATFORM_LINUX
16//config: help 16//config: help
17//config: Creates, removes, and configures VLAN interfaces 17//config: Creates, removes, and configures VLAN interfaces
18 18
19//applet:IF_VCONFIG(APPLET(vconfig, BB_DIR_SBIN, BB_SUID_DROP)) 19//applet:IF_VCONFIG(APPLET(vconfig, BB_DIR_SBIN, BB_SUID_DROP))
20 20
diff --git a/networking/wget.c b/networking/wget.c
index b9d840328..ab9bc1836 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -10,11 +10,11 @@
10 */ 10 */
11 11
12//config:config WGET 12//config:config WGET
13//config: bool "wget" 13//config: bool "wget (35 kb)"
14//config: default y 14//config: default y
15//config: help 15//config: help
16//config: wget is a utility for non-interactive download of files from HTTP 16//config: wget is a utility for non-interactive download of files from HTTP
17//config: and FTP servers. 17//config: and FTP servers.
18//config: 18//config:
19//config:config FEATURE_WGET_LONG_OPTIONS 19//config:config FEATURE_WGET_LONG_OPTIONS
20//config: bool "Enable long options" 20//config: bool "Enable long options"
@@ -31,21 +31,21 @@
31//config: default y 31//config: default y
32//config: depends on WGET 32//config: depends on WGET
33//config: help 33//config: help
34//config: Support authenticated HTTP transfers. 34//config: Support authenticated HTTP transfers.
35//config: 35//config:
36//config:config FEATURE_WGET_TIMEOUT 36//config:config FEATURE_WGET_TIMEOUT
37//config: bool "Enable timeout option -T SEC" 37//config: bool "Enable timeout option -T SEC"
38//config: default y 38//config: default y
39//config: depends on WGET 39//config: depends on WGET
40//config: help 40//config: help
41//config: Supports network read and connect timeouts for wget, 41//config: Supports network read and connect timeouts for wget,
42//config: so that wget will give up and timeout, through the -T 42//config: so that wget will give up and timeout, through the -T
43//config: command line option. 43//config: command line option.
44//config: 44//config:
45//config: Currently only connect and network data read timeout are 45//config: Currently only connect and network data read timeout are
46//config: supported (i.e., timeout is not applied to the DNS query). When 46//config: supported (i.e., timeout is not applied to the DNS query). When
47//config: FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option 47//config: FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option
48//config: will work in addition to -T. 48//config: will work in addition to -T.
49//config: 49//config:
50//config:config FEATURE_WGET_HTTPS 50//config:config FEATURE_WGET_HTTPS
51//config: bool "Support HTTPS using internal TLS code" 51//config: bool "Support HTTPS using internal TLS code"
@@ -53,68 +53,68 @@
53//config: depends on WGET 53//config: depends on WGET
54//config: select TLS 54//config: select TLS
55//config: help 55//config: help
56//config: wget will use internal TLS code to connect to https:// URLs. 56//config: wget will use internal TLS code to connect to https:// URLs.
57//config: Note: 57//config: Note:
58//config: On NOMMU machines, ssl_helper applet should be available 58//config: On NOMMU machines, ssl_helper applet should be available
59//config: in the $PATH for this to work. Make sure to select that applet. 59//config: in the $PATH for this to work. Make sure to select that applet.
60//config: 60//config:
61//config: Note: currently, TLS code only makes TLS I/O work, it 61//config: Note: currently, TLS code only makes TLS I/O work, it
62//config: does *not* check that the peer is who it claims to be, etc. 62//config: does *not* check that the peer is who it claims to be, etc.
63//config: IOW: it uses peer-supplied public keys to establish encryption 63//config: IOW: it uses peer-supplied public keys to establish encryption
64//config: and signing keys, then encrypts and signs outgoing data and 64//config: and signing keys, then encrypts and signs outgoing data and
65//config: decrypts incoming data. 65//config: decrypts incoming data.
66//config: It does not check signature hashes on the incoming data: 66//config: It does not check signature hashes on the incoming data:
67//config: this means that attackers manipulating TCP packets can 67//config: this means that attackers manipulating TCP packets can
68//config: send altered data and we unknowingly receive garbage. 68//config: send altered data and we unknowingly receive garbage.
69//config: (This check might be relatively easy to add). 69//config: (This check might be relatively easy to add).
70//config: It does not check public key's certificate: 70//config: It does not check public key's certificate:
71//config: this means that the peer may be an attacker impersonating 71//config: this means that the peer may be an attacker impersonating
72//config: the server we think we are talking to. 72//config: the server we think we are talking to.
73//config: 73//config:
74//config: If you think this is unacceptable, consider this. As more and more 74//config: If you think this is unacceptable, consider this. As more and more
75//config: servers switch to HTTPS-only operation, without such "crippled" 75//config: servers switch to HTTPS-only operation, without such "crippled"
76//config: TLS code it is *impossible* to simply download a kernel source 76//config: TLS code it is *impossible* to simply download a kernel source
77//config: from kernel.org. Which can in real world translate into 77//config: from kernel.org. Which can in real world translate into
78//config: "my small automatic tooling to build cross-compilers from sources 78//config: "my small automatic tooling to build cross-compilers from sources
79//config: no longer works, I need to additionally keep a local copy 79//config: no longer works, I need to additionally keep a local copy
80//config: of ~4 megabyte source tarball of a SSL library and ~2 megabyte 80//config: of ~4 megabyte source tarball of a SSL library and ~2 megabyte
81//config: source of wget, need to compile and built both before I can 81//config: source of wget, need to compile and built both before I can
82//config: download anything. All this despite the fact that the build 82//config: download anything. All this despite the fact that the build
83//config: is done in a QEMU sandbox on a machine with absolutely nothing 83//config: is done in a QEMU sandbox on a machine with absolutely nothing
84//config: worth stealing, so I don't care if someone would go to a lot 84//config: worth stealing, so I don't care if someone would go to a lot
85//config: of trouble to intercept my HTTPS download to send me an altered 85//config: of trouble to intercept my HTTPS download to send me an altered
86//config: kernel tarball". 86//config: kernel tarball".
87//config: 87//config:
88//config: If you still think this is unacceptable, send patches. 88//config: If you still think this is unacceptable, send patches.
89//config: 89//config:
90//config: If you still think this is unacceptable, do not want to send 90//config: If you still think this is unacceptable, do not want to send
91//config: patches, but do want to waste bandwidth expaining how wrong 91//config: patches, but do want to waste bandwidth expaining how wrong
92//config: it is, you will be ignored. 92//config: it is, you will be ignored.
93//config: 93//config:
94//config:config FEATURE_WGET_OPENSSL 94//config:config FEATURE_WGET_OPENSSL
95//config: bool "Try to connect to HTTPS using openssl" 95//config: bool "Try to connect to HTTPS using openssl"
96//config: default y 96//config: default y
97//config: depends on WGET 97//config: depends on WGET
98//config: help 98//config: help
99//config: Try to use openssl to handle HTTPS. 99//config: Try to use openssl to handle HTTPS.
100//config: 100//config:
101//config: OpenSSL has a simple SSL client for debug purposes. 101//config: OpenSSL has a simple SSL client for debug purposes.
102//config: If you select this option, wget will effectively run: 102//config: If you select this option, wget will effectively run:
103//config: "openssl s_client -quiet -connect hostname:443 103//config: "openssl s_client -quiet -connect hostname:443
104//config: -servername hostname 2>/dev/null" and pipe its data 104//config: -servername hostname 2>/dev/null" and pipe its data
105//config: through it. -servername is not used if hostname is numeric. 105//config: through it. -servername is not used if hostname is numeric.
106//config: Note inconvenient API: host resolution is done twice, 106//config: Note inconvenient API: host resolution is done twice,
107//config: and there is no guarantee openssl's idea of IPv6 address 107//config: and there is no guarantee openssl's idea of IPv6 address
108//config: format is the same as ours. 108//config: format is the same as ours.
109//config: Another problem is that s_client prints debug information 109//config: Another problem is that s_client prints debug information
110//config: to stderr, and it needs to be suppressed. This means 110//config: to stderr, and it needs to be suppressed. This means
111//config: all error messages get suppressed too. 111//config: all error messages get suppressed too.
112//config: openssl is also a big binary, often dynamically linked 112//config: openssl is also a big binary, often dynamically linked
113//config: against ~15 libraries. 113//config: against ~15 libraries.
114//config: 114//config:
115//config: If openssl can't be executed, internal TLS code will be used 115//config: If openssl can't be executed, internal TLS code will be used
116//config: (if you enabled it); if openssl can be executed but fails later, 116//config: (if you enabled it); if openssl can be executed but fails later,
117//config: wget can't detect this, and download will fail. 117//config: wget can't detect this, and download will fail.
118 118
119//applet:IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP)) 119//applet:IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP))
120 120
diff --git a/networking/whois.c b/networking/whois.c
index c9dfcf5ee..0cb7e5411 100644
--- a/networking/whois.c
+++ b/networking/whois.c
@@ -11,10 +11,10 @@
11 */ 11 */
12 12
13//config:config WHOIS 13//config:config WHOIS
14//config: bool "whois" 14//config: bool "whois (6.6 kb)"
15//config: default y 15//config: default y
16//config: help 16//config: help
17//config: whois is a client for the whois directory service 17//config: whois is a client for the whois directory service
18 18
19//applet:IF_WHOIS(APPLET(whois, BB_DIR_USR_BIN, BB_SUID_DROP)) 19//applet:IF_WHOIS(APPLET(whois, BB_DIR_USR_BIN, BB_SUID_DROP))
20 20
diff --git a/networking/zcip.c b/networking/zcip.c
index 9122bd681..94174a165 100644
--- a/networking/zcip.c
+++ b/networking/zcip.c
@@ -15,17 +15,17 @@
15 * certainly be used. Its naming is built over multicast DNS. 15 * certainly be used. Its naming is built over multicast DNS.
16 */ 16 */
17//config:config ZCIP 17//config:config ZCIP
18//config: bool "zcip" 18//config: bool "zcip (7.8 kb)"
19//config: default y 19//config: default y
20//config: select PLATFORM_LINUX 20//config: select PLATFORM_LINUX
21//config: select FEATURE_SYSLOG 21//config: select FEATURE_SYSLOG
22//config: help 22//config: help
23//config: ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927. 23//config: ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
24//config: It's a daemon that allocates and defends a dynamically assigned 24//config: It's a daemon that allocates and defends a dynamically assigned
25//config: address on the 169.254/16 network, requiring no system administrator. 25//config: address on the 169.254/16 network, requiring no system administrator.
26//config: 26//config:
27//config: See http://www.zeroconf.org for further details, and "zcip.script" 27//config: See http://www.zeroconf.org for further details, and "zcip.script"
28//config: in the busybox examples. 28//config: in the busybox examples.
29 29
30//applet:IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP)) 30//applet:IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP))
31 31
@@ -183,6 +183,7 @@ static int run(char *argv[3], const char *param, uint32_t nip)
183 int status; 183 int status;
184 const char *addr = addr; /* for gcc */ 184 const char *addr = addr; /* for gcc */
185 const char *fmt = "%s %s %s" + 3; 185 const char *fmt = "%s %s %s" + 3;
186 char *env_ip = env_ip;
186 187
187 argv[2] = (char*)param; 188 argv[2] = (char*)param;
188 189
@@ -190,12 +191,16 @@ static int run(char *argv[3], const char *param, uint32_t nip)
190 191
191 if (nip != 0) { 192 if (nip != 0) {
192 addr = nip_to_a(nip); 193 addr = nip_to_a(nip);
193 xsetenv("ip", addr); 194 /* Must not use setenv() repeatedly, it leaks memory. Use putenv() */
195 env_ip = xasprintf("ip=%s", addr);
196 putenv(env_ip);
194 fmt -= 3; 197 fmt -= 3;
195 } 198 }
196 bb_error_msg(fmt, argv[2], argv[0], addr); 199 bb_error_msg(fmt, argv[2], argv[0], addr);
197
198 status = spawn_and_wait(argv + 1); 200 status = spawn_and_wait(argv + 1);
201 if (nip != 0)
202 bb_unsetenv_and_free(env_ip);
203
199 if (status < 0) { 204 if (status < 0) {
200 bb_perror_msg("%s %s %s" + 3, argv[2], argv[0]); 205 bb_perror_msg("%s %s %s" + 3, argv[2], argv[0]);
201 return -errno; 206 return -errno;