aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2016-11-23 09:05:14 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2016-11-23 09:05:14 +0100
commit47367e1d50b81501e8a6ce215f8be4eeacdda693 (patch)
tree28be64a4a758a274ef2459628ec29384722cd3fb
parente32b64c4ec9272295df6852fb2a2888d7799d2f0 (diff)
downloadbusybox-w32-47367e1d50b81501e8a6ce215f8be4eeacdda693.tar.gz
busybox-w32-47367e1d50b81501e8a6ce215f8be4eeacdda693.tar.bz2
busybox-w32-47367e1d50b81501e8a6ce215f8be4eeacdda693.zip
Convert all networking/* applets to "new style" applet definitions
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--include/applets.src.h49
-rw-r--r--networking/Config.src794
-rw-r--r--networking/Kbuild.src36
-rw-r--r--networking/arp.c10
-rw-r--r--networking/arping.c11
-rw-r--r--networking/brctl.c30
-rw-r--r--networking/dnsd.c9
-rw-r--r--networking/ether-wake.c10
-rw-r--r--networking/ftpd.c34
-rw-r--r--networking/ftpgetput.c24
-rw-r--r--networking/httpd.c122
-rw-r--r--networking/ifconfig.c51
-rw-r--r--networking/ifenslave.c11
-rw-r--r--networking/ifplugd.c10
-rw-r--r--networking/inetd.c53
-rw-r--r--networking/ip.c124
-rw-r--r--networking/ipcalc.c25
-rw-r--r--networking/isrv_identd.c11
-rw-r--r--networking/nameif.c4
-rw-r--r--networking/nc.c10
-rw-r--r--networking/netstat.c26
-rw-r--r--networking/nslookup.c9
-rw-r--r--networking/ntpd.c26
-rw-r--r--networking/pscan.c9
-rw-r--r--networking/route.c10
-rw-r--r--networking/slattach.c11
-rw-r--r--networking/tc.c1
-rw-r--r--networking/tcpudp.c19
-rw-r--r--networking/telnet.c29
-rw-r--r--networking/telnetd.c72
-rw-r--r--networking/tftp.c72
-rw-r--r--networking/traceroute.c34
-rw-r--r--networking/tunctl.c18
-rw-r--r--networking/vconfig.c11
-rw-r--r--networking/zcip.c16
35 files changed, 909 insertions, 882 deletions
diff --git a/include/applets.src.h b/include/applets.src.h
index 1d2d9c8ed..3fd9ba06e 100644
--- a/include/applets.src.h
+++ b/include/applets.src.h
@@ -76,11 +76,8 @@ INSERT
76IF_TEST(APPLET_NOFORK([, test, BB_DIR_USR_BIN, BB_SUID_DROP, test)) 76IF_TEST(APPLET_NOFORK([, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
77IF_TEST(APPLET_NOFORK([[, test, BB_DIR_USR_BIN, BB_SUID_DROP, test)) 77IF_TEST(APPLET_NOFORK([[, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
78IF_ACPID(APPLET(acpid, BB_DIR_SBIN, BB_SUID_DROP)) 78IF_ACPID(APPLET(acpid, BB_DIR_SBIN, BB_SUID_DROP))
79IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP))
80IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP))
81IF_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename)) 79IF_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename))
82IF_BLKID(APPLET(blkid, BB_DIR_SBIN, BB_SUID_DROP)) 80IF_BLKID(APPLET(blkid, BB_DIR_SBIN, BB_SUID_DROP))
83IF_BRCTL(APPLET(brctl, BB_DIR_USR_SBIN, BB_SUID_DROP))
84IF_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP)) 81IF_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP))
85IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat)) 82IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat))
86IF_CATV(APPLET(catv, BB_DIR_BIN, BB_SUID_DROP)) 83IF_CATV(APPLET(catv, BB_DIR_BIN, BB_SUID_DROP))
@@ -101,7 +98,6 @@ IF_DF(APPLET(df, BB_DIR_BIN, BB_SUID_DROP))
101IF_DHCPRELAY(APPLET(dhcprelay, BB_DIR_USR_SBIN, BB_SUID_DROP)) 98IF_DHCPRELAY(APPLET(dhcprelay, BB_DIR_USR_SBIN, BB_SUID_DROP))
102IF_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname)) 99IF_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname))
103IF_DMESG(APPLET(dmesg, BB_DIR_BIN, BB_SUID_DROP)) 100IF_DMESG(APPLET(dmesg, BB_DIR_BIN, BB_SUID_DROP))
104IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP))
105IF_DOS2UNIX(APPLET_NOEXEC(dos2unix, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, dos2unix)) 101IF_DOS2UNIX(APPLET_NOEXEC(dos2unix, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, dos2unix))
106IF_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP)) 102IF_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP))
107IF_DUMPKMAP(APPLET(dumpkmap, BB_DIR_BIN, BB_SUID_DROP)) 103IF_DUMPKMAP(APPLET(dumpkmap, BB_DIR_BIN, BB_SUID_DROP))
@@ -110,10 +106,8 @@ IF_DUMPLEASES(APPLET(dumpleases, BB_DIR_USR_BIN, BB_SUID_DROP))
110//IF_E2LABEL(APPLET_ODDNAME(e2label, tune2fs, BB_DIR_SBIN, BB_SUID_DROP, e2label)) 106//IF_E2LABEL(APPLET_ODDNAME(e2label, tune2fs, BB_DIR_SBIN, BB_SUID_DROP, e2label))
111IF_ECHO(APPLET_NOFORK(echo, echo, BB_DIR_BIN, BB_SUID_DROP, echo)) 107IF_ECHO(APPLET_NOFORK(echo, echo, BB_DIR_BIN, BB_SUID_DROP, echo))
112IF_ENV(APPLET_NOEXEC(env, env, BB_DIR_USR_BIN, BB_SUID_DROP, env)) 108IF_ENV(APPLET_NOEXEC(env, env, BB_DIR_USR_BIN, BB_SUID_DROP, env))
113IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_SBIN, BB_SUID_DROP, ether_wake))
114IF_EXPAND(APPLET(expand, BB_DIR_USR_BIN, BB_SUID_DROP)) 109IF_EXPAND(APPLET(expand, BB_DIR_USR_BIN, BB_SUID_DROP))
115IF_EXPR(APPLET(expr, BB_DIR_USR_BIN, BB_SUID_DROP)) 110IF_EXPR(APPLET(expr, BB_DIR_USR_BIN, BB_SUID_DROP))
116IF_FAKEIDENTD(APPLET(fakeidentd, BB_DIR_USR_SBIN, BB_SUID_DROP))
117IF_FALSE(APPLET_NOFORK(false, false, BB_DIR_BIN, BB_SUID_DROP, false)) 111IF_FALSE(APPLET_NOFORK(false, false, BB_DIR_BIN, BB_SUID_DROP, false))
118IF_FBSET(APPLET(fbset, BB_DIR_USR_SBIN, BB_SUID_DROP)) 112IF_FBSET(APPLET(fbset, BB_DIR_USR_SBIN, BB_SUID_DROP))
119IF_FDFLUSH(APPLET_ODDNAME(fdflush, freeramdisk, BB_DIR_BIN, BB_SUID_DROP, fdflush)) 113IF_FDFLUSH(APPLET_ODDNAME(fdflush, freeramdisk, BB_DIR_BIN, BB_SUID_DROP, fdflush))
@@ -129,37 +123,16 @@ IF_FREERAMDISK(APPLET(freeramdisk, BB_DIR_SBIN, BB_SUID_DROP))
129//IF_E2FSCK(APPLET_ODDNAME(fsck.ext3, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext3)) 123//IF_E2FSCK(APPLET_ODDNAME(fsck.ext3, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext3))
130IF_FSCK_MINIX(APPLET_ODDNAME(fsck.minix, fsck_minix, BB_DIR_SBIN, BB_SUID_DROP, fsck_minix)) 124IF_FSCK_MINIX(APPLET_ODDNAME(fsck.minix, fsck_minix, BB_DIR_SBIN, BB_SUID_DROP, fsck_minix))
131IF_FSYNC(APPLET_NOFORK(fsync, fsync, BB_DIR_BIN, BB_SUID_DROP, fsync)) 125IF_FSYNC(APPLET_NOFORK(fsync, fsync, BB_DIR_BIN, BB_SUID_DROP, fsync))
132IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
133IF_FTPGET(APPLET_ODDNAME(ftpget, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpget))
134IF_FTPPUT(APPLET_ODDNAME(ftpput, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpput))
135IF_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP)) 126IF_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP))
136IF_GETOPT(APPLET(getopt, BB_DIR_BIN, BB_SUID_DROP)) 127IF_GETOPT(APPLET(getopt, BB_DIR_BIN, BB_SUID_DROP))
137IF_GETSEBOOL(APPLET(getsebool, BB_DIR_USR_SBIN, BB_SUID_DROP)) 128IF_GETSEBOOL(APPLET(getsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
138IF_HD(APPLET_NOEXEC(hd, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hd)) 129IF_HD(APPLET_NOEXEC(hd, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hd))
139IF_HEAD(APPLET_NOEXEC(head, head, BB_DIR_USR_BIN, BB_SUID_DROP, head)) 130IF_HEAD(APPLET_NOEXEC(head, head, BB_DIR_USR_BIN, BB_SUID_DROP, head))
140IF_HEXDUMP(APPLET_NOEXEC(hexdump, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hexdump)) 131IF_HEXDUMP(APPLET_NOEXEC(hexdump, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hexdump))
141IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
142IF_HWCLOCK(APPLET(hwclock, BB_DIR_SBIN, BB_SUID_DROP)) 132IF_HWCLOCK(APPLET(hwclock, BB_DIR_SBIN, BB_SUID_DROP))
143IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP))
144IF_IFENSLAVE(APPLET(ifenslave, BB_DIR_SBIN, BB_SUID_DROP))
145IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_SBIN, BB_SUID_DROP))
146IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
147IF_INSTALL(APPLET(install, BB_DIR_USR_BIN, BB_SUID_DROP)) 133IF_INSTALL(APPLET(install, BB_DIR_USR_BIN, BB_SUID_DROP))
148#if ENABLE_FEATURE_IP_ADDRESS \
149 || ENABLE_FEATURE_IP_ROUTE \
150 || ENABLE_FEATURE_IP_LINK \
151 || ENABLE_FEATURE_IP_TUNNEL \
152 || ENABLE_FEATURE_IP_RULE
153IF_IP(APPLET(ip, BB_DIR_SBIN, BB_SUID_DROP))
154#endif
155IF_IPADDR(APPLET(ipaddr, BB_DIR_SBIN, BB_SUID_DROP))
156IF_IPCALC(APPLET(ipcalc, BB_DIR_BIN, BB_SUID_DROP))
157IF_IPCRM(APPLET(ipcrm, BB_DIR_USR_BIN, BB_SUID_DROP)) 134IF_IPCRM(APPLET(ipcrm, BB_DIR_USR_BIN, BB_SUID_DROP))
158IF_IPCS(APPLET(ipcs, BB_DIR_USR_BIN, BB_SUID_DROP)) 135IF_IPCS(APPLET(ipcs, BB_DIR_USR_BIN, BB_SUID_DROP))
159IF_IPLINK(APPLET(iplink, BB_DIR_SBIN, BB_SUID_DROP))
160IF_IPROUTE(APPLET(iproute, BB_DIR_SBIN, BB_SUID_DROP))
161IF_IPRULE(APPLET(iprule, BB_DIR_SBIN, BB_SUID_DROP))
162IF_IPTUNNEL(APPLET(iptunnel, BB_DIR_SBIN, BB_SUID_DROP))
163IF_KBD_MODE(APPLET(kbd_mode, BB_DIR_BIN, BB_SUID_DROP)) 136IF_KBD_MODE(APPLET(kbd_mode, BB_DIR_BIN, BB_SUID_DROP))
164//IF_LENGTH(APPLET_NOFORK(length, length, BB_DIR_USR_BIN, BB_SUID_DROP, length)) 137//IF_LENGTH(APPLET_NOFORK(length, length, BB_DIR_USR_BIN, BB_SUID_DROP, length))
165IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, BB_SUID_DROP, ln)) 138IF_LN(APPLET_NOEXEC(ln, ln, BB_DIR_BIN, BB_SUID_DROP, ln))
@@ -186,13 +159,8 @@ IF_MORE(APPLET(more, BB_DIR_BIN, BB_SUID_DROP))
186 * Therefore we use BB_SUID_MAYBE instead of BB_SUID_REQUIRE: */ 159 * Therefore we use BB_SUID_MAYBE instead of BB_SUID_REQUIRE: */
187IF_MOUNT(APPLET(mount, BB_DIR_BIN, IF_DESKTOP(BB_SUID_MAYBE) IF_NOT_DESKTOP(BB_SUID_DROP))) 160IF_MOUNT(APPLET(mount, BB_DIR_BIN, IF_DESKTOP(BB_SUID_MAYBE) IF_NOT_DESKTOP(BB_SUID_DROP)))
188IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP)) 161IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP))
189IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
190IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
191IF_NETSTAT(APPLET(netstat, BB_DIR_BIN, BB_SUID_DROP))
192IF_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP)) 162IF_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP))
193IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP)) 163IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
194IF_NSLOOKUP(APPLET(nslookup, BB_DIR_USR_BIN, BB_SUID_DROP))
195IF_NTPD(APPLET(ntpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
196IF_OD(APPLET(od, BB_DIR_USR_BIN, BB_SUID_DROP)) 164IF_OD(APPLET(od, BB_DIR_USR_BIN, BB_SUID_DROP))
197IF_OPENVT(APPLET(openvt, BB_DIR_USR_BIN, BB_SUID_DROP)) 165IF_OPENVT(APPLET(openvt, BB_DIR_USR_BIN, BB_SUID_DROP))
198//IF_PARSE(APPLET(parse, BB_DIR_USR_BIN, BB_SUID_DROP)) 166//IF_PARSE(APPLET(parse, BB_DIR_USR_BIN, BB_SUID_DROP))
@@ -200,7 +168,6 @@ IF_PIVOT_ROOT(APPLET(pivot_root, BB_DIR_SBIN, BB_SUID_DROP))
200IF_POPMAILDIR(APPLET(popmaildir, BB_DIR_USR_SBIN, BB_SUID_DROP)) 168IF_POPMAILDIR(APPLET(popmaildir, BB_DIR_USR_SBIN, BB_SUID_DROP))
201IF_PRINTENV(APPLET_NOFORK(printenv, printenv, BB_DIR_BIN, BB_SUID_DROP, printenv)) 169IF_PRINTENV(APPLET_NOFORK(printenv, printenv, BB_DIR_BIN, BB_SUID_DROP, printenv))
202IF_PRINTF(APPLET_NOFORK(printf, printf, BB_DIR_USR_BIN, BB_SUID_DROP, printf)) 170IF_PRINTF(APPLET_NOFORK(printf, printf, BB_DIR_USR_BIN, BB_SUID_DROP, printf))
203IF_PSCAN(APPLET(pscan, BB_DIR_USR_BIN, BB_SUID_DROP))
204IF_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd)) 171IF_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd))
205IF_RDATE(APPLET(rdate, BB_DIR_USR_SBIN, BB_SUID_DROP)) 172IF_RDATE(APPLET(rdate, BB_DIR_USR_SBIN, BB_SUID_DROP))
206IF_RDEV(APPLET(rdev, BB_DIR_USR_SBIN, BB_SUID_DROP)) 173IF_RDEV(APPLET(rdev, BB_DIR_USR_SBIN, BB_SUID_DROP))
@@ -213,7 +180,6 @@ IF_RESIZE(APPLET(resize, BB_DIR_USR_BIN, BB_SUID_DROP))
213IF_RESTORECON(APPLET_ODDNAME(restorecon, setfiles, BB_DIR_SBIN, BB_SUID_DROP, restorecon)) 180IF_RESTORECON(APPLET_ODDNAME(restorecon, setfiles, BB_DIR_SBIN, BB_SUID_DROP, restorecon))
214IF_RM(APPLET_NOFORK(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm)) 181IF_RM(APPLET_NOFORK(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm))
215IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir)) 182IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir))
216IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP))
217IF_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_SBIN, BB_SUID_DROP)) 183IF_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_SBIN, BB_SUID_DROP))
218IF_RUNCON(APPLET(runcon, BB_DIR_USR_BIN, BB_SUID_DROP)) 184IF_RUNCON(APPLET(runcon, BB_DIR_USR_BIN, BB_SUID_DROP))
219IF_SCRIPT(APPLET(script, BB_DIR_USR_BIN, BB_SUID_DROP)) 185IF_SCRIPT(APPLET(script, BB_DIR_USR_BIN, BB_SUID_DROP))
@@ -230,7 +196,6 @@ IF_SETKEYCODES(APPLET(setkeycodes, BB_DIR_USR_BIN, BB_SUID_DROP))
230IF_SETLOGCONS(APPLET(setlogcons, BB_DIR_USR_SBIN, BB_SUID_DROP)) 196IF_SETLOGCONS(APPLET(setlogcons, BB_DIR_USR_SBIN, BB_SUID_DROP))
231IF_SETSEBOOL(APPLET(setsebool, BB_DIR_USR_SBIN, BB_SUID_DROP)) 197IF_SETSEBOOL(APPLET(setsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
232IF_SHOWKEY(APPLET(showkey, BB_DIR_USR_BIN, BB_SUID_DROP)) 198IF_SHOWKEY(APPLET(showkey, BB_DIR_USR_BIN, BB_SUID_DROP))
233IF_SLATTACH(APPLET(slattach, BB_DIR_SBIN, BB_SUID_DROP))
234/* Do not make this applet NOFORK. It breaks ^C-ing of pauses in shells: */ 199/* Do not make this applet NOFORK. It breaks ^C-ing of pauses in shells: */
235IF_SLEEP(APPLET(sleep, BB_DIR_BIN, BB_SUID_DROP)) 200IF_SLEEP(APPLET(sleep, BB_DIR_BIN, BB_SUID_DROP))
236IF_SORT(APPLET_NOEXEC(sort, sort, BB_DIR_USR_BIN, BB_SUID_DROP, sort)) 201IF_SORT(APPLET_NOEXEC(sort, sort, BB_DIR_USR_BIN, BB_SUID_DROP, sort))
@@ -242,25 +207,13 @@ IF_SWITCH_ROOT(APPLET(switch_root, BB_DIR_SBIN, BB_SUID_DROP))
242IF_TAC(APPLET_NOEXEC(tac, tac, BB_DIR_USR_BIN, BB_SUID_DROP, tac)) 207IF_TAC(APPLET_NOEXEC(tac, tac, BB_DIR_USR_BIN, BB_SUID_DROP, tac))
243IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP)) 208IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP))
244/* IF_TC(APPLET(tc, BB_DIR_SBIN, BB_SUID_DROP)) */ 209/* IF_TC(APPLET(tc, BB_DIR_SBIN, BB_SUID_DROP)) */
245IF_TCPSVD(APPLET_ODDNAME(tcpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, tcpsvd))
246IF_TEE(APPLET(tee, BB_DIR_USR_BIN, BB_SUID_DROP)) 210IF_TEE(APPLET(tee, BB_DIR_USR_BIN, BB_SUID_DROP))
247IF_TELNET(APPLET(telnet, BB_DIR_USR_BIN, BB_SUID_DROP))
248IF_TELNETD(APPLET(telnetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
249IF_TEST(APPLET_NOFORK(test, test, BB_DIR_USR_BIN, BB_SUID_DROP, test)) 211IF_TEST(APPLET_NOFORK(test, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
250#if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT
251IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP))
252IF_TFTPD(APPLET(tftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
253#endif
254IF_TR(APPLET(tr, BB_DIR_USR_BIN, BB_SUID_DROP)) 212IF_TR(APPLET(tr, BB_DIR_USR_BIN, BB_SUID_DROP))
255/* Needs socket(AF_INET, SOCK_RAW, IPPROTO_ICMP), therefore BB_SUID_MAYBE: */
256IF_TRACEROUTE(APPLET(traceroute, BB_DIR_USR_BIN, BB_SUID_MAYBE))
257IF_TRACEROUTE6(APPLET(traceroute6, BB_DIR_USR_BIN, BB_SUID_MAYBE))
258IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true)) 213IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true))
259IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP)) 214IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP))
260IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP))
261IF_UDHCPC(APPLET(udhcpc, BB_DIR_SBIN, BB_SUID_DROP)) 215IF_UDHCPC(APPLET(udhcpc, BB_DIR_SBIN, BB_SUID_DROP))
262IF_UDHCPD(APPLET(udhcpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) 216IF_UDHCPD(APPLET(udhcpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
263IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd))
264IF_UMOUNT(APPLET(umount, BB_DIR_BIN, BB_SUID_DROP)) 217IF_UMOUNT(APPLET(umount, BB_DIR_BIN, BB_SUID_DROP))
265IF_UNAME(APPLET(uname, BB_DIR_BIN, BB_SUID_DROP)) 218IF_UNAME(APPLET(uname, BB_DIR_BIN, BB_SUID_DROP))
266IF_UNEXPAND(APPLET_ODDNAME(unexpand, expand, BB_DIR_USR_BIN, BB_SUID_DROP, unexpand)) 219IF_UNEXPAND(APPLET_ODDNAME(unexpand, expand, BB_DIR_USR_BIN, BB_SUID_DROP, unexpand))
@@ -269,11 +222,9 @@ IF_UNIX2DOS(APPLET_NOEXEC(unix2dos, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, unix
269IF_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep)) 222IF_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep))
270IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP)) 223IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP))
271IF_UUENCODE(APPLET(uuencode, BB_DIR_USR_BIN, BB_SUID_DROP)) 224IF_UUENCODE(APPLET(uuencode, BB_DIR_USR_BIN, BB_SUID_DROP))
272IF_VCONFIG(APPLET(vconfig, BB_DIR_SBIN, BB_SUID_DROP))
273IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP)) 225IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP))
274IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami)) 226IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami))
275IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes)) 227IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes))
276IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP))
277 228
278#if !defined(PROTOTYPES) && !defined(NAME_MAIN) && !defined(MAKE_USAGE) \ 229#if !defined(PROTOTYPES) && !defined(NAME_MAIN) && !defined(MAKE_USAGE) \
279 && !defined(MAKE_LINKS) && !defined(MAKE_SUID) 230 && !defined(MAKE_LINKS) && !defined(MAKE_SUID)
diff --git a/networking/Config.src b/networking/Config.src
index 43667fe6a..4d921884f 100644
--- a/networking/Config.src
+++ b/networking/Config.src
@@ -5,8 +5,6 @@
5 5
6menu "Networking Utilities" 6menu "Networking Utilities"
7 7
8INSERT
9
10config FEATURE_IPV6 8config FEATURE_IPV6
11 bool "Enable IPv6 support" 9 bool "Enable IPv6 support"
12 default y 10 default y
@@ -48,558 +46,7 @@ config VERBOSE_RESOLUTION_ERRORS
48 "can't resolve 'hostname.com'" and want to know more. 46 "can't resolve 'hostname.com'" and want to know more.
49 This may increase size of your executable a bit. 47 This may increase size of your executable a bit.
50 48
51config ARP 49INSERT
52 bool "arp"
53 default y
54 select PLATFORM_LINUX
55 help
56 Manipulate the system ARP cache.
57
58config ARPING
59 bool "arping"
60 default y
61 select PLATFORM_LINUX
62 help
63 Ping hosts by ARP packets.
64
65config BRCTL
66 bool "brctl"
67 default y
68 select PLATFORM_LINUX
69 help
70 Manage ethernet bridges.
71 Supports addbr/delbr and addif/delif.
72
73config FEATURE_BRCTL_FANCY
74 bool "Fancy options"
75 default y
76 depends on BRCTL
77 help
78 Add support for extended option like:
79 setageing, setfd, sethello, setmaxage,
80 setpathcost, setportprio, setbridgeprio,
81 stp
82 This adds about 600 bytes.
83
84config FEATURE_BRCTL_SHOW
85 bool "Support show"
86 default y
87 depends on BRCTL && FEATURE_BRCTL_FANCY
88 help
89 Add support for option which prints the current config:
90 show
91
92config DNSD
93 bool "dnsd"
94 default y
95 help
96 Small and static DNS server daemon.
97
98config ETHER_WAKE
99 bool "ether-wake"
100 default y
101 select PLATFORM_LINUX
102 help
103 Send a magic packet to wake up sleeping machines.
104
105config FAKEIDENTD
106 bool "fakeidentd"
107 default y
108 select FEATURE_SYSLOG
109 help
110 fakeidentd listens on the ident port and returns a predefined
111 fake value on any query.
112
113config FTPD
114 bool "ftpd"
115 default y
116 help
117 simple FTP daemon. You have to run it via inetd.
118
119config FEATURE_FTP_WRITE
120 bool "Enable upload commands"
121 default y
122 depends on FTPD
123 help
124 Enable all kinds of FTP upload commands (-w option)
125
126config FEATURE_FTPD_ACCEPT_BROKEN_LIST
127 bool "Enable workaround for RFC-violating clients"
128 default y
129 depends on FTPD
130 help
131 Some ftp clients (among them KDE's Konqueror) issue illegal
132 "LIST -l" requests. This option works around such problems.
133 It might prevent you from listing files starting with "-" and
134 it increases the code size by ~40 bytes.
135 Most other ftp servers seem to behave similar to this.
136
137config FEATURE_FTP_AUTHENTICATION
138 bool "Enable authentication"
139 default y
140 depends on FTPD
141 help
142 Enable basic system login as seen in telnet etc.
143
144config FTPGET
145 bool "ftpget"
146 default y
147 help
148 Retrieve a remote file via FTP.
149
150config FTPPUT
151 bool "ftpput"
152 default y
153 help
154 Store a remote file via FTP.
155
156config FEATURE_FTPGETPUT_LONG_OPTIONS
157 bool "Enable long options in ftpget/ftpput"
158 default y
159 depends on LONG_OPTS && (FTPGET || FTPPUT)
160 help
161 Support long options for the ftpget/ftpput applet.
162
163config HTTPD
164 bool "httpd"
165 default y
166 help
167 Serve web pages via an HTTP server.
168
169config FEATURE_HTTPD_RANGES
170 bool "Support 'Ranges:' header"
171 default y
172 depends on HTTPD
173 help
174 Makes httpd emit "Accept-Ranges: bytes" header and understand
175 "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
176 downloads, seeking in multimedia players etc.
177
178config FEATURE_HTTPD_SETUID
179 bool "Enable -u <user> option"
180 default y
181 depends on HTTPD
182 help
183 This option allows the server to run as a specific user
184 rather than defaulting to the user that starts the server.
185 Use of this option requires special privileges to change to a
186 different user.
187
188config FEATURE_HTTPD_BASIC_AUTH
189 bool "Enable Basic http Authentication"
190 default y
191 depends on HTTPD
192 help
193 Utilizes password settings from /etc/httpd.conf for basic
194 authentication on a per url basis.
195 Example for httpd.conf file:
196 /adm:toor:PaSsWd
197
198config FEATURE_HTTPD_AUTH_MD5
199 bool "Support MD5 crypted passwords for http Authentication"
200 default y
201 depends on FEATURE_HTTPD_BASIC_AUTH
202 help
203 Enables encrypted passwords, and wildcard user/passwords
204 in httpd.conf file.
205 User '*' means 'any system user name is ok',
206 password of '*' means 'use system password for this user'
207 Examples:
208 /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0
209 /adm:root:*
210 /wiki:*:*
211
212config FEATURE_HTTPD_CGI
213 bool "Support Common Gateway Interface (CGI)"
214 default y
215 depends on HTTPD
216 help
217 This option allows scripts and executables to be invoked
218 when specific URLs are requested.
219
220config FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
221 bool "Support for running scripts through an interpreter"
222 default y
223 depends on FEATURE_HTTPD_CGI
224 help
225 This option enables support for running scripts through an
226 interpreter. Turn this on if you want PHP scripts to work
227 properly. You need to supply an additional line in your
228 httpd.conf file:
229 *.php:/path/to/your/php
230
231config FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
232 bool "Set REMOTE_PORT environment variable for CGI"
233 default y
234 depends on FEATURE_HTTPD_CGI
235 help
236 Use of this option can assist scripts in generating
237 references that contain a unique port number.
238
239config FEATURE_HTTPD_ENCODE_URL_STR
240 bool "Enable -e option (useful for CGIs written as shell scripts)"
241 default y
242 depends on HTTPD
243 help
244 This option allows html encoding of arbitrary strings for display
245 by the browser. Output goes to stdout.
246 For example, httpd -e "<Hello World>" produces
247 "&#60Hello&#32World&#62".
248
249config FEATURE_HTTPD_ERROR_PAGES
250 bool "Support for custom error pages"
251 default y
252 depends on HTTPD
253 help
254 This option allows you to define custom error pages in
255 the configuration file instead of the default HTTP status
256 error pages. For instance, if you add the line:
257 E404:/path/e404.html
258 in the config file, the server will respond the specified
259 '/path/e404.html' file instead of the terse '404 NOT FOUND'
260 message.
261
262config FEATURE_HTTPD_PROXY
263 bool "Support for reverse proxy"
264 default y
265 depends on HTTPD
266 help
267 This option allows you to define URLs that will be forwarded
268 to another HTTP server. To setup add the following line to the
269 configuration file
270 P:/url/:http://hostname[:port]/new/path/
271 Then a request to /url/myfile will be forwarded to
272 http://hostname[:port]/new/path/myfile.
273
274config FEATURE_HTTPD_GZIP
275 bool "Support for GZIP content encoding"
276 default y
277 depends on HTTPD
278 help
279 Makes httpd send files using GZIP content encoding if the
280 client supports it and a pre-compressed <file>.gz exists.
281
282config IFCONFIG
283 bool "ifconfig"
284 default y
285 select PLATFORM_LINUX
286 help
287 Ifconfig is used to configure the kernel-resident network interfaces.
288
289config FEATURE_IFCONFIG_STATUS
290 bool "Enable status reporting output (+7k)"
291 default y
292 depends on IFCONFIG
293 help
294 If ifconfig is called with no arguments it will display the status
295 of the currently active interfaces.
296
297config FEATURE_IFCONFIG_SLIP
298 bool "Enable slip-specific options \"keepalive\" and \"outfill\""
299 default y
300 depends on IFCONFIG
301 help
302 Allow "keepalive" and "outfill" support for SLIP. If you're not
303 planning on using serial lines, leave this unchecked.
304
305config FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
306 bool "Enable options \"mem_start\", \"io_addr\", and \"irq\""
307 default y
308 depends on IFCONFIG
309 help
310 Allow the start address for shared memory, start address for I/O,
311 and/or the interrupt line used by the specified device.
312
313config FEATURE_IFCONFIG_HW
314 bool "Enable option \"hw\" (ether only)"
315 default y
316 depends on IFCONFIG
317 help
318 Set the hardware address of this interface, if the device driver
319 supports this operation. Currently, we only support the 'ether'
320 class.
321
322config FEATURE_IFCONFIG_BROADCAST_PLUS
323 bool "Set the broadcast automatically"
324 default y
325 depends on IFCONFIG
326 help
327 Setting this will make ifconfig attempt to find the broadcast
328 automatically if the value '+' is used.
329
330config IFENSLAVE
331 bool "ifenslave"
332 default y
333 select PLATFORM_LINUX
334 help
335 Userspace application to bind several interfaces
336 to a logical interface (use with kernel bonding driver).
337
338config IFPLUGD
339 bool "ifplugd"
340 default y
341 select PLATFORM_LINUX
342 help
343 Network interface plug detection daemon.
344
345config INETD
346 bool "inetd"
347 default y
348 select FEATURE_SYSLOG
349 help
350 Internet superserver daemon
351
352config FEATURE_INETD_SUPPORT_BUILTIN_ECHO
353 bool "Support echo service"
354 default y
355 depends on INETD
356 help
357 Echo received data internal inetd service
358
359config FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
360 bool "Support discard service"
361 default y
362 depends on INETD
363 help
364 Internet /dev/null internal inetd service
365
366config FEATURE_INETD_SUPPORT_BUILTIN_TIME
367 bool "Support time service"
368 default y
369 depends on INETD
370 help
371 Return 32 bit time since 1900 internal inetd service
372
373config FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
374 bool "Support daytime service"
375 default y
376 depends on INETD
377 help
378 Return human-readable time internal inetd service
379
380config FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
381 bool "Support chargen service"
382 default y
383 depends on INETD
384 help
385 Familiar character generator internal inetd service
386
387config FEATURE_INETD_RPC
388 bool "Support RPC services"
389 default n # very rarely used, and needs Sun RPC support in libc
390 depends on INETD
391 select FEATURE_HAVE_RPC
392 help
393 Support Sun-RPC based services
394
395config IP
396 bool "ip"
397 default y
398 select PLATFORM_LINUX
399 help
400 The "ip" applet is a TCP/IP interface configuration and routing
401 utility. You generally don't need "ip" to use busybox with
402 TCP/IP.
403
404config FEATURE_IP_ADDRESS
405 bool "ip address"
406 default y
407 depends on IP
408 help
409 Address manipulation support for the "ip" applet.
410
411config FEATURE_IP_LINK
412 bool "ip link"
413 default y
414 depends on IP
415 help
416 Configure network devices with "ip".
417
418config FEATURE_IP_ROUTE
419 bool "ip route"
420 default y
421 depends on IP
422 help
423 Add support for routing table management to "ip".
424
425config FEATURE_IP_ROUTE_DIR
426 string "ip route configuration directory"
427 default "/etc/iproute2"
428 depends on FEATURE_IP_ROUTE
429 help
430 Location of the "ip" applet routing configuration.
431
432config FEATURE_IP_TUNNEL
433 bool "ip tunnel"
434 default y
435 depends on IP
436 help
437 Add support for tunneling commands to "ip".
438
439config FEATURE_IP_RULE
440 bool "ip rule"
441 default y
442 depends on IP
443 help
444 Add support for rule commands to "ip".
445
446config FEATURE_IP_NEIGH
447 bool "ip neighbor"
448 default y
449 depends on IP
450 help
451 Add support for neighbor commands to "ip".
452
453config FEATURE_IP_SHORT_FORMS
454 bool "Support short forms of ip commands"
455 default y
456 depends on IP
457 help
458 Also support short-form of ip <OBJECT> commands:
459 ip addr -> ipaddr
460 ip link -> iplink
461 ip route -> iproute
462 ip tunnel -> iptunnel
463 ip rule -> iprule
464 ip neigh -> ipneigh
465
466 Say N unless you desparately need the short form of the ip
467 object commands.
468
469config FEATURE_IP_RARE_PROTOCOLS
470 bool "Support displaying rarely used link types"
471 default n
472 depends on IP
473 help
474 If you are not going to use links of type "frad", "econet",
475 "bif" etc, you probably don't need to enable this.
476 Ethernet, wireless, infrared, ppp/slip, ip tunnelling
477 link types are supported without this option selected.
478
479config IPADDR
480 bool
481 default y
482 depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_ADDRESS
483
484config IPLINK
485 bool
486 default y
487 depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_LINK
488
489config IPROUTE
490 bool
491 default y
492 depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_ROUTE
493
494config IPTUNNEL
495 bool
496 default y
497 depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_TUNNEL
498
499config IPRULE
500 bool
501 default y
502 depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_RULE
503
504config IPNEIGH
505 bool
506 default y
507 depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_NEIGH
508
509config IPCALC
510 bool "ipcalc"
511 default y
512 help
513 ipcalc takes an IP address and netmask and calculates the
514 resulting broadcast, network, and host range.
515
516config FEATURE_IPCALC_FANCY
517 bool "Fancy IPCALC, more options, adds 1 kbyte"
518 default y
519 depends on IPCALC
520 help
521 Adds the options hostname, prefix and silent to the output of
522 "ipcalc".
523
524config FEATURE_IPCALC_LONG_OPTIONS
525 bool "Enable long options"
526 default y
527 depends on IPCALC && LONG_OPTS
528 help
529 Support long options for the ipcalc applet.
530
531config NETSTAT
532 bool "netstat"
533 default y
534 select PLATFORM_LINUX
535 help
536 netstat prints information about the Linux networking subsystem.
537
538config FEATURE_NETSTAT_WIDE
539 bool "Enable wide netstat output"
540 default y
541 depends on NETSTAT
542 help
543 Add support for wide columns. Useful when displaying IPv6 addresses
544 (-W option).
545
546config FEATURE_NETSTAT_PRG
547 bool "Enable PID/Program name output"
548 default y
549 depends on NETSTAT
550 help
551 Add support for -p flag to print out PID and program name.
552 +700 bytes of code.
553
554config NSLOOKUP
555 bool "nslookup"
556 default y
557 help
558 nslookup is a tool to query Internet name servers.
559
560config NTPD
561 bool "ntpd"
562 default y
563 select PLATFORM_LINUX
564 help
565 The NTP client/server daemon.
566
567config FEATURE_NTPD_SERVER
568 bool "Make ntpd usable as a NTP server"
569 default y
570 depends on NTPD
571 help
572 Make ntpd usable as a NTP server. If you disable this option
573 ntpd will be usable only as a NTP client.
574
575config FEATURE_NTPD_CONF
576 bool "Make ntpd understand /etc/ntp.conf"
577 default y
578 depends on NTPD
579 help
580 Make ntpd look in /etc/ntp.conf for peers. Only "server address"
581 is supported.
582
583config PSCAN
584 bool "pscan"
585 default y
586 help
587 Simple network port scanner.
588
589config ROUTE
590 bool "route"
591 default y
592 select PLATFORM_LINUX
593 help
594 Route displays or manipulates the kernel's IP routing tables.
595
596config SLATTACH
597 bool "slattach"
598 default y
599 select PLATFORM_LINUX
600 help
601 slattach is a small utility to attach network interfaces to serial
602 lines.
603 50
604#config TC 51#config TC
605# bool "tc" 52# bool "tc"
@@ -611,218 +58,6 @@ config SLATTACH
611# def_bool n 58# def_bool n
612# depends on TC 59# depends on TC
613 60
614config TCPSVD
615 bool "tcpsvd"
616 default y
617 help
618 tcpsvd listens on a TCP port and runs a program for each new
619 connection.
620
621config TELNET
622 bool "telnet"
623 default y
624 help
625 Telnet is an interface to the TELNET protocol, but is also commonly
626 used to test other simple protocols.
627
628config FEATURE_TELNET_TTYPE
629 bool "Pass TERM type to remote host"
630 default y
631 depends on TELNET
632 help
633 Setting this option will forward the TERM environment variable to the
634 remote host you are connecting to. This is useful to make sure that
635 things like ANSI colors and other control sequences behave.
636
637config FEATURE_TELNET_AUTOLOGIN
638 bool "Pass USER type to remote host"
639 default y
640 depends on TELNET
641 help
642 Setting this option will forward the USER environment variable to the
643 remote host you are connecting to. This is useful when you need to
644 log into a machine without telling the username (autologin). This
645 option enables `-a' and `-l USER' arguments.
646
647config TELNETD
648 bool "telnetd"
649 default y
650 select FEATURE_SYSLOG
651 help
652 A daemon for the TELNET protocol, allowing you to log onto the host
653 running the daemon. Please keep in mind that the TELNET protocol
654 sends passwords in plain text. If you can't afford the space for an
655 SSH daemon and you trust your network, you may say 'y' here. As a
656 more secure alternative, you should seriously consider installing the
657 very small Dropbear SSH daemon instead:
658 http://matt.ucc.asn.au/dropbear/dropbear.html
659
660 Note that for busybox telnetd to work you need several things:
661 First of all, your kernel needs:
662 CONFIG_UNIX98_PTYS=y
663
664 Next, you need a /dev/pts directory on your root filesystem:
665
666 $ ls -ld /dev/pts
667 drwxr-xr-x 2 root root 0 Sep 23 13:21 /dev/pts/
668
669 Next you need the pseudo terminal master multiplexer /dev/ptmx:
670
671 $ ls -la /dev/ptmx
672 crw-rw-rw- 1 root tty 5, 2 Sep 23 13:55 /dev/ptmx
673
674 Any /dev/ttyp[0-9]* files you may have can be removed.
675 Next, you need to mount the devpts filesystem on /dev/pts using:
676
677 mount -t devpts devpts /dev/pts
678
679 You need to be sure that busybox has LOGIN and
680 FEATURE_SUID enabled. And finally, you should make
681 certain that Busybox has been installed setuid root:
682
683 chown root.root /bin/busybox
684 chmod 4755 /bin/busybox
685
686 with all that done, telnetd _should_ work....
687
688
689config FEATURE_TELNETD_STANDALONE
690 bool "Support standalone telnetd (not inetd only)"
691 default y
692 depends on TELNETD
693 help
694 Selecting this will make telnetd able to run standalone.
695
696config FEATURE_TELNETD_INETD_WAIT
697 bool "Support -w SEC option (inetd wait mode)"
698 default y
699 depends on FEATURE_TELNETD_STANDALONE
700 help
701 This option allows you to run telnetd in "inet wait" mode.
702 Example inetd.conf line (note "wait", not usual "nowait"):
703
704 telnet stream tcp wait root /bin/telnetd telnetd -w10
705
706 In this example, inetd passes _listening_ socket_ as fd 0
707 to telnetd when connection appears.
708 telnetd will wait for connections until all existing
709 connections are closed, and no new connections
710 appear during 10 seconds. Then it exits, and inetd continues
711 to listen for new connections.
712
713 This option is rarely used. "tcp nowait" is much more usual
714 way of running tcp services, including telnetd.
715 You most probably want to say N here.
716
717config TFTP
718 bool "tftp"
719 default y
720 help
721 This enables the Trivial File Transfer Protocol client program. TFTP
722 is usually used for simple, small transfers such as a root image
723 for a network-enabled bootloader.
724
725config TFTPD
726 bool "tftpd"
727 default y
728 help
729 This enables the Trivial File Transfer Protocol server program.
730 It expects that stdin is a datagram socket and a packet
731 is already pending on it. It will exit after one transfer.
732 In other words: it should be run from inetd in nowait mode,
733 or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
734
735comment "Common options for tftp/tftpd"
736 depends on TFTP || TFTPD
737
738config FEATURE_TFTP_GET
739 bool "Enable 'tftp get' and/or tftpd upload code"
740 default y
741 depends on TFTP || TFTPD
742 help
743 Add support for the GET command within the TFTP client. This allows
744 a client to retrieve a file from a TFTP server.
745 Also enable upload support in tftpd, if tftpd is selected.
746
747 Note: this option does _not_ make tftpd capable of download
748 (the usual operation people need from it)!
749
750config FEATURE_TFTP_PUT
751 bool "Enable 'tftp put' and/or tftpd download code"
752 default y
753 depends on TFTP || TFTPD
754 help
755 Add support for the PUT command within the TFTP client. This allows
756 a client to transfer a file to a TFTP server.
757 Also enable download support in tftpd, if tftpd is selected.
758
759config FEATURE_TFTP_BLOCKSIZE
760 bool "Enable 'blksize' and 'tsize' protocol options"
761 default y
762 depends on TFTP || TFTPD
763 help
764 Allow tftp to specify block size, and tftpd to understand
765 "blksize" and "tsize" options.
766
767config FEATURE_TFTP_PROGRESS_BAR
768 bool "Enable tftp progress meter"
769 default y
770 depends on TFTP && FEATURE_TFTP_BLOCKSIZE
771 help
772 Show progress bar.
773
774config TFTP_DEBUG
775 bool "Enable debug"
776 default n
777 depends on TFTP || TFTPD
778 help
779 Make tftp[d] print debugging messages on stderr.
780 This is useful if you are diagnosing a bug in tftp[d].
781
782config TRACEROUTE
783 bool "traceroute"
784 default y
785 select PLATFORM_LINUX
786 help
787 Utility to trace the route of IP packets.
788
789config TRACEROUTE6
790 bool "traceroute6"
791 default y
792 depends on FEATURE_IPV6 && TRACEROUTE
793 help
794 Utility to trace the route of IPv6 packets.
795
796config FEATURE_TRACEROUTE_VERBOSE
797 bool "Enable verbose output"
798 default y
799 depends on TRACEROUTE
800 help
801 Add some verbosity to traceroute. This includes among other things
802 hostnames and ICMP response types.
803
804config FEATURE_TRACEROUTE_USE_ICMP
805 bool "Enable -I option (use ICMP instead of UDP)"
806 default y
807 depends on TRACEROUTE
808 help
809 Add option -I to use ICMP ECHO instead of UDP datagrams.
810
811config TUNCTL
812 bool "tunctl"
813 default y
814 select PLATFORM_LINUX
815 help
816 tunctl creates or deletes tun devices.
817
818config FEATURE_TUNCTL_UG
819 bool "Support owner:group assignment"
820 default y
821 depends on TUNCTL
822 help
823 Allow to specify owner and group of newly created interface.
824 340 bytes of pure bloat. Say no here.
825
826source networking/udhcp/Config.in 61source networking/udhcp/Config.in
827 62
828config IFUPDOWN_UDHCPC_CMD_OPTIONS 63config IFUPDOWN_UDHCPC_CMD_OPTIONS
@@ -834,31 +69,4 @@ config IFUPDOWN_UDHCPC_CMD_OPTIONS
834 Intended to alter options not available in /etc/network/interfaces. 69 Intended to alter options not available in /etc/network/interfaces.
835 (IE: --syslog --background etc...) 70 (IE: --syslog --background etc...)
836 71
837config UDPSVD
838 bool "udpsvd"
839 default y
840 help
841 udpsvd listens on an UDP port and runs a program for each new
842 connection.
843
844config VCONFIG
845 bool "vconfig"
846 default y
847 select PLATFORM_LINUX
848 help
849 Creates, removes, and configures VLAN interfaces
850
851config ZCIP
852 bool "zcip"
853 default y
854 select PLATFORM_LINUX
855 select FEATURE_SYSLOG
856 help
857 ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
858 It's a daemon that allocates and defends a dynamically assigned
859 address on the 169.254/16 network, requiring no system administrator.
860
861 See http://www.zeroconf.org for further details, and "zcip.script"
862 in the busybox examples.
863
864endmenu 72endmenu
diff --git a/networking/Kbuild.src b/networking/Kbuild.src
index 4ad750283..6b4fb7470 100644
--- a/networking/Kbuild.src
+++ b/networking/Kbuild.src
@@ -7,39 +7,3 @@
7lib-y:= 7lib-y:=
8 8
9INSERT 9INSERT
10lib-$(CONFIG_ARP) += arp.o interface.o
11lib-$(CONFIG_ARPING) += arping.o
12lib-$(CONFIG_BRCTL) += brctl.o
13lib-$(CONFIG_DNSD) += dnsd.o
14lib-$(CONFIG_ETHER_WAKE) += ether-wake.o
15lib-$(CONFIG_FAKEIDENTD) += isrv_identd.o isrv.o
16lib-$(CONFIG_FTPD) += ftpd.o
17lib-$(CONFIG_FTPGET) += ftpgetput.o
18lib-$(CONFIG_FTPPUT) += ftpgetput.o
19lib-$(CONFIG_HTTPD) += httpd.o
20lib-$(CONFIG_IFCONFIG) += ifconfig.o interface.o
21lib-$(CONFIG_IFENSLAVE) += ifenslave.o interface.o
22lib-$(CONFIG_IFPLUGD) += ifplugd.o
23lib-$(CONFIG_INETD) += inetd.o
24lib-$(CONFIG_IP) += ip.o
25lib-$(CONFIG_IPCALC) += ipcalc.o
26lib-$(CONFIG_NAMEIF) += nameif.o
27lib-$(CONFIG_NC) += nc.o
28lib-$(CONFIG_NETSTAT) += netstat.o
29lib-$(CONFIG_NSLOOKUP) += nslookup.o
30lib-$(CONFIG_NTPD) += ntpd.o
31lib-$(CONFIG_PSCAN) += pscan.o
32lib-$(CONFIG_ROUTE) += route.o
33lib-$(CONFIG_SLATTACH) += slattach.o
34lib-$(CONFIG_TC) += tc.o
35lib-$(CONFIG_TELNET) += telnet.o
36lib-$(CONFIG_TELNETD) += telnetd.o
37lib-$(CONFIG_TFTP) += tftp.o
38lib-$(CONFIG_TFTPD) += tftp.o
39lib-$(CONFIG_TRACEROUTE) += traceroute.o
40lib-$(CONFIG_TUNCTL) += tunctl.o
41lib-$(CONFIG_VCONFIG) += vconfig.o
42lib-$(CONFIG_ZCIP) += zcip.o
43
44lib-$(CONFIG_TCPSVD) += tcpudp.o tcpudp_perhost.o
45lib-$(CONFIG_UDPSVD) += tcpudp.o tcpudp_perhost.o
diff --git a/networking/arp.c b/networking/arp.c
index 69a5816eb..a62a3761c 100644
--- a/networking/arp.c
+++ b/networking/arp.c
@@ -12,6 +12,16 @@
12 * 12 *
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
16//config: bool "arp"
17//config: default y
18//config: select PLATFORM_LINUX
19//config: help
20//config: Manipulate the system ARP cache.
21
22//applet:IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP))
23
24//kbuild:lib-$(CONFIG_ARP) += arp.o interface.o
15 25
16//usage:#define arp_trivial_usage 26//usage:#define arp_trivial_usage
17//usage: "\n[-vn] [-H HWTYPE] [-i IF] -a [HOSTNAME]" 27//usage: "\n[-vn] [-H HWTYPE] [-i IF] -a [HOSTNAME]"
diff --git a/networking/arping.c b/networking/arping.c
index 46bd65e36..5bfeb1b45 100644
--- a/networking/arping.c
+++ b/networking/arping.c
@@ -5,6 +5,17 @@
5 * Author: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> 5 * Author: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
6 * Busybox port: Nick Fedchik <nick@fedchik.org.ua> 6 * Busybox port: Nick Fedchik <nick@fedchik.org.ua>
7 */ 7 */
8//config:config ARPING
9//config: bool "arping"
10//config: default y
11//config: select PLATFORM_LINUX
12//config: help
13//config: Ping hosts by ARP packets.
14//config:
15
16//applet:IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP))
17
18//kbuild:lib-$(CONFIG_ARPING) += arping.o
8 19
9//usage:#define arping_trivial_usage 20//usage:#define arping_trivial_usage
10//usage: "[-fqbDUA] [-c CNT] [-w TIMEOUT] [-I IFACE] [-s SRC_IP] DST_IP" 21//usage: "[-fqbDUA] [-c CNT] [-w TIMEOUT] [-I IFACE] [-s SRC_IP] DST_IP"
diff --git a/networking/brctl.c b/networking/brctl.c
index b7320966a..35876896e 100644
--- a/networking/brctl.c
+++ b/networking/brctl.c
@@ -12,6 +12,36 @@
12/* This applet currently uses only the ioctl interface and no sysfs at all. 12/* This applet currently uses only the ioctl interface and no sysfs at all.
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
16//config: bool "brctl"
17//config: default y
18//config: select PLATFORM_LINUX
19//config: help
20//config: Manage ethernet bridges.
21//config: Supports addbr/delbr and addif/delif.
22//config:
23//config:config FEATURE_BRCTL_FANCY
24//config: bool "Fancy options"
25//config: default y
26//config: depends on BRCTL
27//config: help
28//config: Add support for extended option like:
29//config: setageing, setfd, sethello, setmaxage,
30//config: setpathcost, setportprio, setbridgeprio,
31//config: stp
32//config: This adds about 600 bytes.
33//config:
34//config:config FEATURE_BRCTL_SHOW
35//config: bool "Support show"
36//config: default y
37//config: depends on BRCTL && FEATURE_BRCTL_FANCY
38//config: help
39//config: Add support for option which prints the current config:
40//config: show
41
42//applet:IF_BRCTL(APPLET(brctl, BB_DIR_USR_SBIN, BB_SUID_DROP))
43
44//kbuild:lib-$(CONFIG_BRCTL) += brctl.o
15 45
16//usage:#define brctl_trivial_usage 46//usage:#define brctl_trivial_usage
17//usage: "COMMAND [BRIDGE [INTERFACE]]" 47//usage: "COMMAND [BRIDGE [INTERFACE]]"
diff --git a/networking/dnsd.c b/networking/dnsd.c
index 923ad6bc6..7be90018d 100644
--- a/networking/dnsd.c
+++ b/networking/dnsd.c
@@ -16,6 +16,15 @@
16 * Some bugfix and minor changes was applied by Roberto A. Foglietta who made 16 * Some bugfix and minor changes was applied by Roberto A. Foglietta who made
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
20//config: bool "dnsd"
21//config: default y
22//config: help
23//config: Small and static DNS server daemon.
24
25//applet:IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP))
26
27//kbuild:lib-$(CONFIG_DNSD) += dnsd.o
19 28
20//usage:#define dnsd_trivial_usage 29//usage:#define dnsd_trivial_usage
21//usage: "[-dvs] [-c CONFFILE] [-t TTL_SEC] [-p PORT] [-i ADDR]" 30//usage: "[-dvs] [-c CONFFILE] [-t TTL_SEC] [-p PORT] [-i ADDR]"
diff --git a/networking/ether-wake.c b/networking/ether-wake.c
index c38547dda..d7d691772 100644
--- a/networking/ether-wake.c
+++ b/networking/ether-wake.c
@@ -63,6 +63,16 @@
63 * doing so only works with adapters configured for unicast+broadcast Rx 63 * doing so only works with adapters configured for unicast+broadcast Rx
64 * filter. That configuration consumes more power. 64 * filter. That configuration consumes more power.
65 */ 65 */
66//config:config ETHER_WAKE
67//config: bool "ether-wake"
68//config: default y
69//config: select PLATFORM_LINUX
70//config: help
71//config: Send a magic packet to wake up sleeping machines.
72
73//applet:IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_SBIN, BB_SUID_DROP, ether_wake))
74
75//kbuild:lib-$(CONFIG_ETHER_WAKE) += ether-wake.o
66 76
67//usage:#define ether_wake_trivial_usage 77//usage:#define ether_wake_trivial_usage
68//usage: "[-b] [-i IFACE] [-p aa:bb:cc:dd[:ee:ff]/a.b.c.d] MAC" 78//usage: "[-b] [-i IFACE] [-p aa:bb:cc:dd[:ee:ff]/a.b.c.d] MAC"
diff --git a/networking/ftpd.c b/networking/ftpd.c
index 4cbb9b6fe..d4e6c27ce 100644
--- a/networking/ftpd.c
+++ b/networking/ftpd.c
@@ -11,6 +11,40 @@
11 * 11 *
12 * You have to run this daemon via inetd. 12 * You have to run this daemon via inetd.
13 */ 13 */
14//config:config FTPD
15//config: bool "ftpd"
16//config: default y
17//config: help
18//config: simple FTP daemon. You have to run it via inetd.
19//config:
20//config:config FEATURE_FTP_WRITE
21//config: bool "Enable upload commands"
22//config: default y
23//config: depends on FTPD
24//config: help
25//config: Enable all kinds of FTP upload commands (-w option)
26//config:
27//config:config FEATURE_FTPD_ACCEPT_BROKEN_LIST
28//config: bool "Enable workaround for RFC-violating clients"
29//config: default y
30//config: depends on FTPD
31//config: help
32//config: Some ftp clients (among them KDE's Konqueror) issue illegal
33//config: "LIST -l" requests. This option works around such problems.
34//config: It might prevent you from listing files starting with "-" and
35//config: it increases the code size by ~40 bytes.
36//config: Most other ftp servers seem to behave similar to this.
37//config:
38//config:config FEATURE_FTP_AUTHENTICATION
39//config: bool "Enable authentication"
40//config: default y
41//config: depends on FTPD
42//config: help
43//config: Enable basic system login as seen in telnet etc.
44
45//applet:IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
46
47//kbuild:lib-$(CONFIG_FTPD) += ftpd.o
14 48
15//usage:#define ftpd_trivial_usage 49//usage:#define ftpd_trivial_usage
16//usage: "[-wvS] [-t N] [-T N] [DIR]" 50//usage: "[-wvS] [-t N] [-T N] [DIR]"
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c
index 91fb4569a..40a3271ab 100644
--- a/networking/ftpgetput.c
+++ b/networking/ftpgetput.c
@@ -12,6 +12,30 @@
12 * 12 *
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
16//config: bool "ftpget"
17//config: default y
18//config: help
19//config: Retrieve a remote file via FTP.
20//config:
21//config:config FTPPUT
22//config: bool "ftpput"
23//config: default y
24//config: help
25//config: Store a remote file via FTP.
26//config:
27//config:config FEATURE_FTPGETPUT_LONG_OPTIONS
28//config: bool "Enable long options in ftpget/ftpput"
29//config: default y
30//config: depends on LONG_OPTS && (FTPGET || FTPPUT)
31//config: help
32//config: Support long options for the ftpget/ftpput applet.
33
34//applet:IF_FTPGET(APPLET_ODDNAME(ftpget, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpget))
35//applet:IF_FTPPUT(APPLET_ODDNAME(ftpput, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpput))
36
37//kbuild:lib-$(CONFIG_FTPGET) += ftpgetput.o
38//kbuild:lib-$(CONFIG_FTPPUT) += ftpgetput.o
15 39
16//usage:#define ftpget_trivial_usage 40//usage:#define ftpget_trivial_usage
17//usage: "[OPTIONS] HOST [LOCAL_FILE] REMOTE_FILE" 41//usage: "[OPTIONS] HOST [LOCAL_FILE] REMOTE_FILE"
diff --git a/networking/httpd.c b/networking/httpd.c
index c20642e11..d301d598d 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -98,6 +98,128 @@
98 * 98 *
99 */ 99 */
100 /* TODO: use TCP_CORK, parse_config() */ 100 /* TODO: use TCP_CORK, parse_config() */
101//config:config HTTPD
102//config: bool "httpd"
103//config: default y
104//config: help
105//config: Serve web pages via an HTTP server.
106//config:
107//config:config FEATURE_HTTPD_RANGES
108//config: bool "Support 'Ranges:' header"
109//config: default y
110//config: depends on HTTPD
111//config: help
112//config: Makes httpd emit "Accept-Ranges: bytes" header and understand
113//config: "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
114//config: downloads, seeking in multimedia players etc.
115//config:
116//config:config FEATURE_HTTPD_SETUID
117//config: bool "Enable -u <user> option"
118//config: default y
119//config: depends on HTTPD
120//config: help
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.
123//config: Use of this option requires special privileges to change to a
124//config: different user.
125//config:
126//config:config FEATURE_HTTPD_BASIC_AUTH
127//config: bool "Enable Basic http Authentication"
128//config: default y
129//config: depends on HTTPD
130//config: help
131//config: Utilizes password settings from /etc/httpd.conf for basic
132//config: authentication on a per url basis.
133//config: Example for httpd.conf file:
134//config: /adm:toor:PaSsWd
135//config:
136//config:config FEATURE_HTTPD_AUTH_MD5
137//config: bool "Support MD5 crypted passwords for http Authentication"
138//config: default y
139//config: depends on FEATURE_HTTPD_BASIC_AUTH
140//config: help
141//config: Enables encrypted passwords, and wildcard user/passwords
142//config: in httpd.conf file.
143//config: User '*' means 'any system user name is ok',
144//config: password of '*' means 'use system password for this user'
145//config: Examples:
146//config: /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0
147//config: /adm:root:*
148//config: /wiki:*:*
149//config:
150//config:config FEATURE_HTTPD_CGI
151//config: bool "Support Common Gateway Interface (CGI)"
152//config: default y
153//config: depends on HTTPD
154//config: help
155//config: This option allows scripts and executables to be invoked
156//config: when specific URLs are requested.
157//config:
158//config:config FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
159//config: bool "Support for running scripts through an interpreter"
160//config: default y
161//config: depends on FEATURE_HTTPD_CGI
162//config: help
163//config: This option enables support for running scripts through an
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
166//config: httpd.conf file:
167//config: *.php:/path/to/your/php
168//config:
169//config:config FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
170//config: bool "Set REMOTE_PORT environment variable for CGI"
171//config: default y
172//config: depends on FEATURE_HTTPD_CGI
173//config: help
174//config: Use of this option can assist scripts in generating
175//config: references that contain a unique port number.
176//config:
177//config:config FEATURE_HTTPD_ENCODE_URL_STR
178//config: bool "Enable -e option (useful for CGIs written as shell scripts)"
179//config: default y
180//config: depends on HTTPD
181//config: help
182//config: This option allows html encoding of arbitrary strings for display
183//config: by the browser. Output goes to stdout.
184//config: For example, httpd -e "<Hello World>" produces
185//config: "&#60Hello&#32World&#62".
186//config:
187//config:config FEATURE_HTTPD_ERROR_PAGES
188//config: bool "Support for custom error pages"
189//config: default y
190//config: depends on HTTPD
191//config: help
192//config: This option allows you to define custom error pages in
193//config: the configuration file instead of the default HTTP status
194//config: error pages. For instance, if you add the line:
195//config: E404:/path/e404.html
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'
198//config: message.
199//config:
200//config:config FEATURE_HTTPD_PROXY
201//config: bool "Support for reverse proxy"
202//config: default y
203//config: depends on HTTPD
204//config: help
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
207//config: configuration file
208//config: P:/url/:http://hostname[:port]/new/path/
209//config: Then a request to /url/myfile will be forwarded to
210//config: http://hostname[:port]/new/path/myfile.
211//config:
212//config:config FEATURE_HTTPD_GZIP
213//config: bool "Support for GZIP content encoding"
214//config: default y
215//config: depends on HTTPD
216//config: help
217//config: Makes httpd send files using GZIP content encoding if the
218//config: client supports it and a pre-compressed <file>.gz exists.
219
220//applet:IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
221
222//kbuild:lib-$(CONFIG_HTTPD) += httpd.o
101 223
102//usage:#define httpd_trivial_usage 224//usage:#define httpd_trivial_usage
103//usage: "[-ifv[v]]" 225//usage: "[-ifv[v]]"
diff --git a/networking/ifconfig.c b/networking/ifconfig.c
index 8984b0207..9e16936d8 100644
--- a/networking/ifconfig.c
+++ b/networking/ifconfig.c
@@ -25,6 +25,57 @@
25 * 2002-04-20 25 * 2002-04-20
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
29//config: bool "ifconfig"
30//config: default y
31//config: select PLATFORM_LINUX
32//config: help
33//config: Ifconfig is used to configure the kernel-resident network interfaces.
34//config:
35//config:config FEATURE_IFCONFIG_STATUS
36//config: bool "Enable status reporting output (+7k)"
37//config: default y
38//config: depends on IFCONFIG
39//config: help
40//config: If ifconfig is called with no arguments it will display the status
41//config: of the currently active interfaces.
42//config:
43//config:config FEATURE_IFCONFIG_SLIP
44//config: bool "Enable slip-specific options \"keepalive\" and \"outfill\""
45//config: default y
46//config: depends on IFCONFIG
47//config: help
48//config: Allow "keepalive" and "outfill" support for SLIP. If you're not
49//config: planning on using serial lines, leave this unchecked.
50//config:
51//config:config FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
52//config: bool "Enable options \"mem_start\", \"io_addr\", and \"irq\""
53//config: default y
54//config: depends on IFCONFIG
55//config: help
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.
58//config:
59//config:config FEATURE_IFCONFIG_HW
60//config: bool "Enable option \"hw\" (ether only)"
61//config: default y
62//config: depends on IFCONFIG
63//config: help
64//config: Set the hardware address of this interface, if the device driver
65//config: supports this operation. Currently, we only support the 'ether'
66//config: class.
67//config:
68//config:config FEATURE_IFCONFIG_BROADCAST_PLUS
69//config: bool "Set the broadcast automatically"
70//config: default y
71//config: depends on IFCONFIG
72//config: help
73//config: Setting this will make ifconfig attempt to find the broadcast
74//config: automatically if the value '+' is used.
75
76//applet:IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP))
77
78//kbuild:lib-$(CONFIG_IFCONFIG) += ifconfig.o interface.o
28 79
29//usage:#define ifconfig_trivial_usage 80//usage:#define ifconfig_trivial_usage
30//usage: IF_FEATURE_IFCONFIG_STATUS("[-a]") " interface [address]" 81//usage: IF_FEATURE_IFCONFIG_STATUS("[-a]") " interface [address]"
diff --git a/networking/ifenslave.c b/networking/ifenslave.c
index 6b234adee..1cb765e23 100644
--- a/networking/ifenslave.c
+++ b/networking/ifenslave.c
@@ -97,6 +97,17 @@
97 * - Code cleanup and style changes 97 * - Code cleanup and style changes
98 * set version to 1.1.0 98 * set version to 1.1.0
99 */ 99 */
100//config:config IFENSLAVE
101//config: bool "ifenslave"
102//config: default y
103//config: select PLATFORM_LINUX
104//config: help
105//config: Userspace application to bind several interfaces
106//config: to a logical interface (use with kernel bonding driver).
107
108//applet:IF_IFENSLAVE(APPLET(ifenslave, BB_DIR_SBIN, BB_SUID_DROP))
109
110//kbuild:lib-$(CONFIG_IFENSLAVE) += ifenslave.o interface.o
100 111
101//usage:#define ifenslave_trivial_usage 112//usage:#define ifenslave_trivial_usage
102//usage: "[-cdf] MASTER_IFACE SLAVE_IFACE..." 113//usage: "[-cdf] MASTER_IFACE SLAVE_IFACE..."
diff --git a/networking/ifplugd.c b/networking/ifplugd.c
index 029cba147..4f8a274b0 100644
--- a/networking/ifplugd.c
+++ b/networking/ifplugd.c
@@ -6,6 +6,16 @@
6 * 6 *
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
10//config: bool "ifplugd"
11//config: default y
12//config: select PLATFORM_LINUX
13//config: help
14//config: Network interface plug detection daemon.
15
16//applet:IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_SBIN, BB_SUID_DROP))
17
18//kbuild:lib-$(CONFIG_IFPLUGD) += ifplugd.o
9 19
10//usage:#define ifplugd_trivial_usage 20//usage:#define ifplugd_trivial_usage
11//usage: "[OPTIONS]" 21//usage: "[OPTIONS]"
diff --git a/networking/inetd.c b/networking/inetd.c
index f9295e38b..4d0ab2e0d 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -153,6 +153,59 @@
153 * setgid(specified group) 153 * setgid(specified group)
154 * setuid() 154 * setuid()
155 */ 155 */
156//config:config INETD
157//config: bool "inetd"
158//config: default y
159//config: select FEATURE_SYSLOG
160//config: help
161//config: Internet superserver daemon
162//config:
163//config:config FEATURE_INETD_SUPPORT_BUILTIN_ECHO
164//config: bool "Support echo service"
165//config: default y
166//config: depends on INETD
167//config: help
168//config: Echo received data internal inetd service
169//config:
170//config:config FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
171//config: bool "Support discard service"
172//config: default y
173//config: depends on INETD
174//config: help
175//config: Internet /dev/null internal inetd service
176//config:
177//config:config FEATURE_INETD_SUPPORT_BUILTIN_TIME
178//config: bool "Support time service"
179//config: default y
180//config: depends on INETD
181//config: help
182//config: Return 32 bit time since 1900 internal inetd service
183//config:
184//config:config FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
185//config: bool "Support daytime service"
186//config: default y
187//config: depends on INETD
188//config: help
189//config: Return human-readable time internal inetd service
190//config:
191//config:config FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
192//config: bool "Support chargen service"
193//config: default y
194//config: depends on INETD
195//config: help
196//config: Familiar character generator internal inetd service
197//config:
198//config:config FEATURE_INETD_RPC
199//config: bool "Support RPC services"
200//config: default n # very rarely used, and needs Sun RPC support in libc
201//config: depends on INETD
202//config: select FEATURE_HAVE_RPC
203//config: help
204//config: Support Sun-RPC based services
205
206//applet:IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
207
208//kbuild:lib-$(CONFIG_INETD) += inetd.o
156 209
157//usage:#define inetd_trivial_usage 210//usage:#define inetd_trivial_usage
158//usage: "[-fe] [-q N] [-R N] [CONFFILE]" 211//usage: "[-fe] [-q N] [-R N] [CONFFILE]"
diff --git a/networking/ip.c b/networking/ip.c
index ddfe74e9c..99f150e61 100644
--- a/networking/ip.c
+++ b/networking/ip.c
@@ -8,6 +8,130 @@
8 * Rani Assaf <rani@magic.metawire.com> 980929: resolve addresses 8 * Rani Assaf <rani@magic.metawire.com> 980929: resolve addresses
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
12//config: bool "ip"
13//config: default y
14//config: select PLATFORM_LINUX
15//config: help
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
18//config: TCP/IP.
19//config:
20//config:config FEATURE_IP_ADDRESS
21//config: bool "ip address"
22//config: default y
23//config: depends on IP
24//config: help
25//config: Address manipulation support for the "ip" applet.
26//config:
27//config:config FEATURE_IP_LINK
28//config: bool "ip link"
29//config: default y
30//config: depends on IP
31//config: help
32//config: Configure network devices with "ip".
33//config:
34//config:config FEATURE_IP_ROUTE
35//config: bool "ip route"
36//config: default y
37//config: depends on IP
38//config: help
39//config: Add support for routing table management to "ip".
40//config:
41//config:config FEATURE_IP_ROUTE_DIR
42//config: string "ip route configuration directory"
43//config: default "/etc/iproute2"
44//config: depends on FEATURE_IP_ROUTE
45//config: help
46//config: Location of the "ip" applet routing configuration.
47//config:
48//config:config FEATURE_IP_TUNNEL
49//config: bool "ip tunnel"
50//config: default y
51//config: depends on IP
52//config: help
53//config: Add support for tunneling commands to "ip".
54//config:
55//config:config FEATURE_IP_RULE
56//config: bool "ip rule"
57//config: default y
58//config: depends on IP
59//config: help
60//config: Add support for rule commands to "ip".
61//config:
62//config:config FEATURE_IP_NEIGH
63//config: bool "ip neighbor"
64//config: default y
65//config: depends on IP
66//config: help
67//config: Add support for neighbor commands to "ip".
68//config:
69//config:config FEATURE_IP_SHORT_FORMS
70//config: bool "Support short forms of ip commands"
71//config: default y
72//config: depends on IP
73//config: help
74//config: Also support short-form of ip <OBJECT> commands:
75//config: ip addr -> ipaddr
76//config: ip link -> iplink
77//config: ip route -> iproute
78//config: ip tunnel -> iptunnel
79//config: ip rule -> iprule
80//config: ip neigh -> ipneigh
81//config:
82//config: Say N unless you desparately need the short form of the ip
83//config: object commands.
84//config:
85//config:config FEATURE_IP_RARE_PROTOCOLS
86//config: bool "Support displaying rarely used link types"
87//config: default n
88//config: depends on IP
89//config: help
90//config: If you are not going to use links of type "frad", "econet",
91//config: "bif" etc, you probably don't need to enable this.
92//config: Ethernet, wireless, infrared, ppp/slip, ip tunnelling
93//config: link types are supported without this option selected.
94//config:
95//config:config IPADDR
96//config: bool
97//config: default y
98//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_ADDRESS
99//config:
100//config:config IPLINK
101//config: bool
102//config: default y
103//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_LINK
104//config:
105//config:config IPROUTE
106//config: bool
107//config: default y
108//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_ROUTE
109//config:
110//config:config IPTUNNEL
111//config: bool
112//config: default y
113//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_TUNNEL
114//config:
115//config:config IPRULE
116//config: bool
117//config: default y
118//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_RULE
119//config:
120//config:config IPNEIGH
121//config: bool
122//config: default y
123//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_NEIGH
124
125//applet:#if ENABLE_FEATURE_IP_ADDRESS || ENABLE_FEATURE_IP_ROUTE || ENABLE_FEATURE_IP_LINK || ENABLE_FEATURE_IP_TUNNEL || ENABLE_FEATURE_IP_RULE
126//applet:IF_IP(APPLET(ip, BB_DIR_SBIN, BB_SUID_DROP))
127//applet:#endif
128//applet:IF_IPADDR(APPLET(ipaddr, BB_DIR_SBIN, BB_SUID_DROP))
129//applet:IF_IPLINK(APPLET(iplink, BB_DIR_SBIN, BB_SUID_DROP))
130//applet:IF_IPROUTE(APPLET(iproute, BB_DIR_SBIN, BB_SUID_DROP))
131//applet:IF_IPRULE(APPLET(iprule, BB_DIR_SBIN, BB_SUID_DROP))
132//applet:IF_IPTUNNEL(APPLET(iptunnel, BB_DIR_SBIN, BB_SUID_DROP))
133
134//kbuild:lib-$(CONFIG_IP) += ip.o
11 135
12/* would need to make the " | " optional depending on more than one selected: */ 136/* would need to make the " | " optional depending on more than one selected: */
13//usage:#define ip_trivial_usage 137//usage:#define ip_trivial_usage
diff --git a/networking/ipcalc.c b/networking/ipcalc.c
index f4bacd7dc..21219424f 100644
--- a/networking/ipcalc.c
+++ b/networking/ipcalc.c
@@ -11,6 +11,31 @@
11 * 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
15//config: bool "ipcalc"
16//config: default y
17//config: help
18//config: ipcalc takes an IP address and netmask and calculates the
19//config: resulting broadcast, network, and host range.
20//config:
21//config:config FEATURE_IPCALC_FANCY
22//config: bool "Fancy IPCALC, more options, adds 1 kbyte"
23//config: default y
24//config: depends on IPCALC
25//config: help
26//config: Adds the options hostname, prefix and silent to the output of
27//config: "ipcalc".
28//config:
29//config:config FEATURE_IPCALC_LONG_OPTIONS
30//config: bool "Enable long options"
31//config: default y
32//config: depends on IPCALC && LONG_OPTS
33//config: help
34//config: Support long options for the ipcalc applet.
35
36//applet:IF_IPCALC(APPLET(ipcalc, BB_DIR_BIN, BB_SUID_DROP))
37
38//kbuild:lib-$(CONFIG_IPCALC) += ipcalc.o
14 39
15//usage:#define ipcalc_trivial_usage 40//usage:#define ipcalc_trivial_usage
16//usage: "[OPTIONS] ADDRESS" 41//usage: "[OPTIONS] ADDRESS"
diff --git a/networking/isrv_identd.c b/networking/isrv_identd.c
index 8a15926e5..219c64b66 100644
--- a/networking/isrv_identd.c
+++ b/networking/isrv_identd.c
@@ -6,6 +6,17 @@
6 * 6 *
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
10//config: bool "fakeidentd"
11//config: default y
12//config: select FEATURE_SYSLOG
13//config: help
14//config: fakeidentd listens on the ident port and returns a predefined
15//config: fake value on any query.
16
17//applet:IF_FAKEIDENTD(APPLET(fakeidentd, BB_DIR_USR_SBIN, BB_SUID_DROP))
18
19//kbuild:lib-$(CONFIG_FAKEIDENTD) += isrv_identd.o isrv.o
9 20
10//usage:#define fakeidentd_trivial_usage 21//usage:#define fakeidentd_trivial_usage
11//usage: "[-fiw] [-b ADDR] [STRING]" 22//usage: "[-fiw] [-b ADDR] [STRING]"
diff --git a/networking/nameif.c b/networking/nameif.c
index 9b18a6d16..cffd5bfde 100644
--- a/networking/nameif.c
+++ b/networking/nameif.c
@@ -40,6 +40,10 @@
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))
44
45//kbuild:lib-$(CONFIG_NAMEIF) += nameif.o
46
43//usage:#define nameif_trivial_usage 47//usage:#define nameif_trivial_usage
44//usage: IF_NOT_FEATURE_NAMEIF_EXTENDED( 48//usage: IF_NOT_FEATURE_NAMEIF_EXTENDED(
45//usage: "[-s] [-c FILE] [IFNAME HWADDR]..." 49//usage: "[-s] [-c FILE] [IFNAME HWADDR]..."
diff --git a/networking/nc.c b/networking/nc.c
index 13a9b48a8..1b70434ac 100644
--- a/networking/nc.c
+++ b/networking/nc.c
@@ -6,10 +6,6 @@
6 * 6 *
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
10#include "libbb.h"
11#include "common_bufsiz.h"
12
13//config:config NC 9//config:config NC
14//config: bool "nc" 10//config: bool "nc"
15//config: default y 11//config: default y
@@ -43,6 +39,12 @@
43//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
44//config: busybox-specific extensions: -f FILE. 40//config: busybox-specific extensions: -f FILE.
45 41
42//applet:IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
43
44//kbuild:lib-$(CONFIG_NC) += nc.o
45
46#include "libbb.h"
47#include "common_bufsiz.h"
46#if ENABLE_NC_110_COMPAT 48#if ENABLE_NC_110_COMPAT
47# include "nc_bloaty.c" 49# include "nc_bloaty.c"
48#else 50#else
diff --git a/networking/netstat.c b/networking/netstat.c
index 2196d42f7..90da6cdb8 100644
--- a/networking/netstat.c
+++ b/networking/netstat.c
@@ -13,6 +13,32 @@
13 * 13 *
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
17//config: bool "netstat"
18//config: default y
19//config: select PLATFORM_LINUX
20//config: help
21//config: netstat prints information about the Linux networking subsystem.
22//config:
23//config:config FEATURE_NETSTAT_WIDE
24//config: bool "Enable wide netstat output"
25//config: default y
26//config: depends on NETSTAT
27//config: help
28//config: Add support for wide columns. Useful when displaying IPv6 addresses
29//config: (-W option).
30//config:
31//config:config FEATURE_NETSTAT_PRG
32//config: bool "Enable PID/Program name output"
33//config: default y
34//config: depends on NETSTAT
35//config: help
36//config: Add support for -p flag to print out PID and program name.
37//config: +700 bytes of code.
38
39//applet:IF_NETSTAT(APPLET(netstat, BB_DIR_BIN, BB_SUID_DROP))
40
41//kbuild:lib-$(CONFIG_NETSTAT) += netstat.o
16 42
17#include "libbb.h" 43#include "libbb.h"
18#include "inet_common.h" 44#include "inet_common.h"
diff --git a/networking/nslookup.c b/networking/nslookup.c
index dd4b1ffed..8e3c8fed9 100644
--- a/networking/nslookup.c
+++ b/networking/nslookup.c
@@ -10,6 +10,15 @@
10 * 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
14//config: bool "nslookup"
15//config: default y
16//config: help
17//config: nslookup is a tool to query Internet name servers.
18
19//applet:IF_NSLOOKUP(APPLET(nslookup, BB_DIR_USR_BIN, BB_SUID_DROP))
20
21//kbuild:lib-$(CONFIG_NSLOOKUP) += nslookup.o
13 22
14//usage:#define nslookup_trivial_usage 23//usage:#define nslookup_trivial_usage
15//usage: "[HOST] [SERVER]" 24//usage: "[HOST] [SERVER]"
diff --git a/networking/ntpd.c b/networking/ntpd.c
index 8ca62cf1b..b7fa5dce9 100644
--- a/networking/ntpd.c
+++ b/networking/ntpd.c
@@ -40,6 +40,32 @@
40 * purpose. It is provided "as is" without express or implied warranty. 40 * purpose. It is provided "as is" without express or implied warranty.
41 *********************************************************************** 41 ***********************************************************************
42 */ 42 */
43//config:config NTPD
44//config: bool "ntpd"
45//config: default y
46//config: select PLATFORM_LINUX
47//config: help
48//config: The NTP client/server daemon.
49//config:
50//config:config FEATURE_NTPD_SERVER
51//config: bool "Make ntpd usable as a NTP server"
52//config: default y
53//config: depends on NTPD
54//config: help
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.
57//config:
58//config:config FEATURE_NTPD_CONF
59//config: bool "Make ntpd understand /etc/ntp.conf"
60//config: default y
61//config: depends on NTPD
62//config: help
63//config: Make ntpd look in /etc/ntp.conf for peers. Only "server address"
64//config: is supported.
65
66//applet:IF_NTPD(APPLET(ntpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
67
68//kbuild:lib-$(CONFIG_NTPD) += ntpd.o
43 69
44//usage:#define ntpd_trivial_usage 70//usage:#define ntpd_trivial_usage
45//usage: "[-dnqNw"IF_FEATURE_NTPD_SERVER("l -I IFACE")"] [-S PROG] [-p PEER]..." 71//usage: "[-dnqNw"IF_FEATURE_NTPD_SERVER("l -I IFACE")"] [-S PROG] [-p PEER]..."
diff --git a/networking/pscan.c b/networking/pscan.c
index 72ed8cdb5..0893c3577 100644
--- a/networking/pscan.c
+++ b/networking/pscan.c
@@ -5,6 +5,15 @@
5 * 5 *
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
9//config: bool "pscan"
10//config: default y
11//config: help
12//config: Simple network port scanner.
13
14//applet:IF_PSCAN(APPLET(pscan, BB_DIR_USR_BIN, BB_SUID_DROP))
15
16//kbuild:lib-$(CONFIG_PSCAN) += pscan.o
8 17
9//usage:#define pscan_trivial_usage 18//usage:#define pscan_trivial_usage
10//usage: "[-cb] [-p MIN_PORT] [-P MAX_PORT] [-t TIMEOUT] [-T MIN_RTT] HOST" 19//usage: "[-cb] [-p MIN_PORT] [-P MAX_PORT] [-t TIMEOUT] [-T MIN_RTT] HOST"
diff --git a/networking/route.c b/networking/route.c
index 102a6ec67..7dc2b5a3d 100644
--- a/networking/route.c
+++ b/networking/route.c
@@ -24,6 +24,16 @@
24 * Rewritten to fix several bugs, add additional error checking, and 24 * Rewritten to fix several bugs, add additional error checking, and
25 * remove ridiculous amounts of bloat. 25 * remove ridiculous amounts of bloat.
26 */ 26 */
27//config:config ROUTE
28//config: bool "route"
29//config: default y
30//config: select PLATFORM_LINUX
31//config: help
32//config: Route displays or manipulates the kernel's IP routing tables.
33
34//applet:IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP))
35
36//kbuild:lib-$(CONFIG_ROUTE) += route.o
27 37
28//usage:#define route_trivial_usage 38//usage:#define route_trivial_usage
29//usage: "[{add|del|delete}]" 39//usage: "[{add|del|delete}]"
diff --git a/networking/slattach.c b/networking/slattach.c
index 2d1305e32..9267eb1d0 100644
--- a/networking/slattach.c
+++ b/networking/slattach.c
@@ -12,6 +12,17 @@
12 * 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
16//config: bool "slattach"
17//config: default y
18//config: select PLATFORM_LINUX
19//config: help
20//config: slattach is a small utility to attach network interfaces to serial
21//config: lines.
22
23//applet:IF_SLATTACH(APPLET(slattach, BB_DIR_SBIN, BB_SUID_DROP))
24
25//kbuild:lib-$(CONFIG_SLATTACH) += slattach.o
15 26
16//usage:#define slattach_trivial_usage 27//usage:#define slattach_trivial_usage
17//usage: "[-cehmLF] [-s SPEED] [-p PROTOCOL] DEVICE" 28//usage: "[-cehmLF] [-s SPEED] [-p PROTOCOL] DEVICE"
diff --git a/networking/tc.c b/networking/tc.c
index d0bcbdeaa..e10200c1e 100644
--- a/networking/tc.c
+++ b/networking/tc.c
@@ -6,6 +6,7 @@
6 * 6 *
7 * Bernhard Reutner-Fischer adjusted for busybox 7 * Bernhard Reutner-Fischer adjusted for busybox
8 */ 8 */
9//kbuild:lib-$(CONFIG_TC) += tc.o
9 10
10//usage:#define tc_trivial_usage 11//usage:#define tc_trivial_usage
11/* //usage: "[OPTIONS] OBJECT CMD [dev STRING]" */ 12/* //usage: "[OPTIONS] OBJECT CMD [dev STRING]" */
diff --git a/networking/tcpudp.c b/networking/tcpudp.c
index b27cf3ea9..94c89b9ef 100644
--- a/networking/tcpudp.c
+++ b/networking/tcpudp.c
@@ -28,6 +28,25 @@
28 * with wrong source IP... 28 * with wrong source IP...
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
32//config: bool "tcpsvd"
33//config: default y
34//config: help
35//config: tcpsvd listens on a TCP port and runs a program for each new
36//config: connection.
37//config:
38//config:config UDPSVD
39//config: bool "udpsvd"
40//config: default y
41//config: help
42//config: udpsvd listens on an UDP port and runs a program for each new
43//config: connection.
44
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))
47
48//kbuild:lib-$(CONFIG_TCPSVD) += tcpudp.o tcpudp_perhost.o
49//kbuild:lib-$(CONFIG_UDPSVD) += tcpudp.o tcpudp_perhost.o
31 50
32//usage:#define tcpsvd_trivial_usage 51//usage:#define tcpsvd_trivial_usage
33//usage: "[-hEv] [-c N] [-C N[:MSG]] [-b N] [-u USER] [-l NAME] IP PORT PROG" 52//usage: "[-hEv] [-c N] [-C N[:MSG]] [-b N] [-u USER] [-l NAME] IP PORT PROG"
diff --git a/networking/telnet.c b/networking/telnet.c
index 1a6986b94..f520fe1dd 100644
--- a/networking/telnet.c
+++ b/networking/telnet.c
@@ -20,6 +20,35 @@
20 * by Fernando Silveira <swrh@gmx.net> 20 * by Fernando Silveira <swrh@gmx.net>
21 * 21 *
22 */ 22 */
23//config:config TELNET
24//config: bool "telnet"
25//config: default y
26//config: help
27//config: Telnet is an interface to the TELNET protocol, but is also commonly
28//config: used to test other simple protocols.
29//config:
30//config:config FEATURE_TELNET_TTYPE
31//config: bool "Pass TERM type to remote host"
32//config: default y
33//config: depends on TELNET
34//config: help
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
37//config: things like ANSI colors and other control sequences behave.
38//config:
39//config:config FEATURE_TELNET_AUTOLOGIN
40//config: bool "Pass USER type to remote host"
41//config: default y
42//config: depends on TELNET
43//config: help
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
46//config: log into a machine without telling the username (autologin). This
47//config: option enables `-a' and `-l USER' arguments.
48
49//applet:IF_TELNET(APPLET(telnet, BB_DIR_USR_BIN, BB_SUID_DROP))
50
51//kbuild:lib-$(CONFIG_TELNET) += telnet.o
23 52
24//usage:#if ENABLE_FEATURE_TELNET_AUTOLOGIN 53//usage:#if ENABLE_FEATURE_TELNET_AUTOLOGIN
25//usage:#define telnet_trivial_usage 54//usage:#define telnet_trivial_usage
diff --git a/networking/telnetd.c b/networking/telnetd.c
index 303ef1be7..f06e9583e 100644
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
@@ -20,6 +20,78 @@
20 * Vladimir Oleynik <dzo@simtreas.ru> 2001 20 * Vladimir Oleynik <dzo@simtreas.ru> 2001
21 * Set process group corrections, initial busybox port 21 * Set process group corrections, initial busybox port
22 */ 22 */
23//config:config TELNETD
24//config: bool "telnetd"
25//config: default y
26//config: select FEATURE_SYSLOG
27//config: help
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
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
32//config: more secure alternative, you should seriously consider installing the
33//config: very small Dropbear SSH daemon instead:
34//config: http://matt.ucc.asn.au/dropbear/dropbear.html
35//config:
36//config: Note that for busybox telnetd to work you need several things:
37//config: First of all, your kernel needs:
38//config: CONFIG_UNIX98_PTYS=y
39//config:
40//config: Next, you need a /dev/pts directory on your root filesystem:
41//config:
42//config: $ ls -ld /dev/pts
43//config: drwxr-xr-x 2 root root 0 Sep 23 13:21 /dev/pts/
44//config:
45//config: Next you need the pseudo terminal master multiplexer /dev/ptmx:
46//config:
47//config: $ ls -la /dev/ptmx
48//config: crw-rw-rw- 1 root tty 5, 2 Sep 23 13:55 /dev/ptmx
49//config:
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:
52//config:
53//config: mount -t devpts devpts /dev/pts
54//config:
55//config: You need to be sure that busybox has LOGIN and
56//config: FEATURE_SUID enabled. And finally, you should make
57//config: certain that Busybox has been installed setuid root:
58//config:
59//config: chown root.root /bin/busybox
60//config: chmod 4755 /bin/busybox
61//config:
62//config: with all that done, telnetd _should_ work....
63//config:
64//config:config FEATURE_TELNETD_STANDALONE
65//config: bool "Support standalone telnetd (not inetd only)"
66//config: default y
67//config: depends on TELNETD
68//config: help
69//config: Selecting this will make telnetd able to run standalone.
70//config:
71//config:config FEATURE_TELNETD_INETD_WAIT
72//config: bool "Support -w SEC option (inetd wait mode)"
73//config: default y
74//config: depends on FEATURE_TELNETD_STANDALONE
75//config: help
76//config: This option allows you to run telnetd in "inet wait" mode.
77//config: Example inetd.conf line (note "wait", not usual "nowait"):
78//config:
79//config: telnet stream tcp wait root /bin/telnetd telnetd -w10
80//config:
81//config: In this example, inetd passes _listening_ socket_ as fd 0
82//config: to telnetd when connection appears.
83//config: telnetd will wait for connections until all existing
84//config: connections are closed, and no new connections
85//config: appear during 10 seconds. Then it exits, and inetd continues
86//config: to listen for new connections.
87//config:
88//config: This option is rarely used. "tcp nowait" is much more usual
89//config: way of running tcp services, including telnetd.
90//config: You most probably want to say N here.
91
92//applet:IF_TELNETD(APPLET(telnetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
93
94//kbuild:lib-$(CONFIG_TELNETD) += telnetd.o
23 95
24//usage:#define telnetd_trivial_usage 96//usage:#define telnetd_trivial_usage
25//usage: "[OPTIONS]" 97//usage: "[OPTIONS]"
diff --git a/networking/tftp.c b/networking/tftp.c
index e879c4674..ed8672025 100644
--- a/networking/tftp.c
+++ b/networking/tftp.c
@@ -18,6 +18,78 @@
18 * 18 *
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
22//config: bool "tftp"
23//config: default y
24//config: help
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
27//config: for a network-enabled bootloader.
28//config:
29//config:config TFTPD
30//config: bool "tftpd"
31//config: default y
32//config: help
33//config: This enables the Trivial File Transfer Protocol server program.
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.
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"
38//config:
39//config:comment "Common options for tftp/tftpd"
40//config: depends on TFTP || TFTPD
41//config:
42//config:config FEATURE_TFTP_GET
43//config: bool "Enable 'tftp get' and/or tftpd upload code"
44//config: default y
45//config: depends on TFTP || TFTPD
46//config: help
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.
49//config: Also enable upload support in tftpd, if tftpd is selected.
50//config:
51//config: Note: this option does _not_ make tftpd capable of download
52//config: (the usual operation people need from it)!
53//config:
54//config:config FEATURE_TFTP_PUT
55//config: bool "Enable 'tftp put' and/or tftpd download code"
56//config: default y
57//config: depends on TFTP || TFTPD
58//config: help
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.
61//config: Also enable download support in tftpd, if tftpd is selected.
62//config:
63//config:config FEATURE_TFTP_BLOCKSIZE
64//config: bool "Enable 'blksize' and 'tsize' protocol options"
65//config: default y
66//config: depends on TFTP || TFTPD
67//config: help
68//config: Allow tftp to specify block size, and tftpd to understand
69//config: "blksize" and "tsize" options.
70//config:
71//config:config FEATURE_TFTP_PROGRESS_BAR
72//config: bool "Enable tftp progress meter"
73//config: default y
74//config: depends on TFTP && FEATURE_TFTP_BLOCKSIZE
75//config: help
76//config: Show progress bar.
77//config:
78//config:config TFTP_DEBUG
79//config: bool "Enable debug"
80//config: default n
81//config: depends on TFTP || TFTPD
82//config: help
83//config: Make tftp[d] print debugging messages on stderr.
84//config: This is useful if you are diagnosing a bug in tftp[d].
85
86//applet:#if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT
87//applet:IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP))
88//applet:IF_TFTPD(APPLET(tftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
89//applet:#endif
90
91//kbuild:lib-$(CONFIG_TFTP) += tftp.o
92//kbuild:lib-$(CONFIG_TFTPD) += tftp.o
21 93
22//usage:#define tftp_trivial_usage 94//usage:#define tftp_trivial_usage
23//usage: "[OPTIONS] HOST [PORT]" 95//usage: "[OPTIONS] HOST [PORT]"
diff --git a/networking/traceroute.c b/networking/traceroute.c
index b9a9ca4bb..58a9b692a 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -209,6 +209,40 @@
209 * -- Van Jacobson (van@ee.lbl.gov) 209 * -- Van Jacobson (van@ee.lbl.gov)
210 * Tue Dec 20 03:50:13 PST 1988 210 * Tue Dec 20 03:50:13 PST 1988
211 */ 211 */
212//config:config TRACEROUTE
213//config: bool "traceroute"
214//config: default y
215//config: select PLATFORM_LINUX
216//config: help
217//config: Utility to trace the route of IP packets.
218//config:
219//config:config TRACEROUTE6
220//config: bool "traceroute6"
221//config: default y
222//config: depends on FEATURE_IPV6 && TRACEROUTE
223//config: help
224//config: Utility to trace the route of IPv6 packets.
225//config:
226//config:config FEATURE_TRACEROUTE_VERBOSE
227//config: bool "Enable verbose output"
228//config: default y
229//config: depends on TRACEROUTE
230//config: help
231//config: Add some verbosity to traceroute. This includes among other things
232//config: hostnames and ICMP response types.
233//config:
234//config:config FEATURE_TRACEROUTE_USE_ICMP
235//config: bool "Enable -I option (use ICMP instead of UDP)"
236//config: default y
237//config: depends on TRACEROUTE
238//config: help
239//config: Add option -I to use ICMP ECHO instead of UDP datagrams.
240
241/* Needs socket(AF_INET, SOCK_RAW, IPPROTO_ICMP), therefore BB_SUID_MAYBE: */
242//applet:IF_TRACEROUTE(APPLET(traceroute, BB_DIR_USR_BIN, BB_SUID_MAYBE))
243//applet:IF_TRACEROUTE6(APPLET(traceroute6, BB_DIR_USR_BIN, BB_SUID_MAYBE))
244
245//kbuild:lib-$(CONFIG_TRACEROUTE) += traceroute.o
212 246
213//usage:#define traceroute_trivial_usage 247//usage:#define traceroute_trivial_usage
214//usage: "[-"IF_TRACEROUTE6("46")"FIlnrv] [-f 1ST_TTL] [-m MAXTTL] [-q PROBES] [-p PORT]\n" 248//usage: "[-"IF_TRACEROUTE6("46")"FIlnrv] [-f 1ST_TTL] [-m MAXTTL] [-q PROBES] [-p PORT]\n"
diff --git a/networking/tunctl.c b/networking/tunctl.c
index 941e8bbd3..fa904c2a9 100644
--- a/networking/tunctl.c
+++ b/networking/tunctl.c
@@ -9,6 +9,24 @@
9 * 9 *
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
13//config: bool "tunctl"
14//config: default y
15//config: select PLATFORM_LINUX
16//config: help
17//config: tunctl creates or deletes tun devices.
18//config:
19//config:config FEATURE_TUNCTL_UG
20//config: bool "Support owner:group assignment"
21//config: default y
22//config: depends on TUNCTL
23//config: help
24//config: Allow to specify owner and group of newly created interface.
25//config: 340 bytes of pure bloat. Say no here.
26
27//applet:IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP))
28
29//kbuild:lib-$(CONFIG_TUNCTL) += tunctl.o
12 30
13//usage:#define tunctl_trivial_usage 31//usage:#define tunctl_trivial_usage
14//usage: "[-f device] ([-t name] | -d name)" IF_FEATURE_TUNCTL_UG(" [-u owner] [-g group] [-b]") 32//usage: "[-f device] ([-t name] | -d name)" IF_FEATURE_TUNCTL_UG(" [-u owner] [-g group] [-b]")
diff --git a/networking/vconfig.c b/networking/vconfig.c
index 924b2f009..f3020409a 100644
--- a/networking/vconfig.c
+++ b/networking/vconfig.c
@@ -9,6 +9,17 @@
9 9
10/* BB_AUDIT SUSv3 N/A */ 10/* BB_AUDIT SUSv3 N/A */
11 11
12//config:config VCONFIG
13//config: bool "vconfig"
14//config: default y
15//config: select PLATFORM_LINUX
16//config: help
17//config: Creates, removes, and configures VLAN interfaces
18
19//applet:IF_VCONFIG(APPLET(vconfig, BB_DIR_SBIN, BB_SUID_DROP))
20
21//kbuild:lib-$(CONFIG_VCONFIG) += vconfig.o
22
12//usage:#define vconfig_trivial_usage 23//usage:#define vconfig_trivial_usage
13//usage: "COMMAND [OPTIONS]" 24//usage: "COMMAND [OPTIONS]"
14//usage:#define vconfig_full_usage "\n\n" 25//usage:#define vconfig_full_usage "\n\n"
diff --git a/networking/zcip.c b/networking/zcip.c
index 47f3216a0..9122bd681 100644
--- a/networking/zcip.c
+++ b/networking/zcip.c
@@ -14,6 +14,22 @@
14 * routed at the IP level, though various proxies or bridges can 14 * routed at the IP level, though various proxies or bridges can
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
18//config: bool "zcip"
19//config: default y
20//config: select PLATFORM_LINUX
21//config: select FEATURE_SYSLOG
22//config: help
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
25//config: address on the 169.254/16 network, requiring no system administrator.
26//config:
27//config: See http://www.zeroconf.org for further details, and "zcip.script"
28//config: in the busybox examples.
29
30//applet:IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP))
31
32//kbuild:lib-$(CONFIG_ZCIP) += zcip.o
17 33
18//#define DEBUG 34//#define DEBUG
19 35