summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko2016-11-23 09:05:14 +0100
committerDenys Vlasenko2016-11-23 09:05:14 +0100
commit47367e1d50b81501e8a6ce215f8be4eeacdda693 (patch)
tree28be64a4a758a274ef2459628ec29384722cd3fb
parente32b64c4ec9272295df6852fb2a2888d7799d2f0 (diff)
downloadbusybox-47367e1d50b81501e8a6ce215f8be4eeacdda693.zip
busybox-47367e1d50b81501e8a6ce215f8be4eeacdda693.tar.gz
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 1d2d9c8..3fd9ba0 100644
--- a/include/applets.src.h
+++ b/include/applets.src.h
@@ -76,11 +76,8 @@ INSERT
IF_TEST(APPLET_NOFORK([, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
IF_TEST(APPLET_NOFORK([[, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
IF_ACPID(APPLET(acpid, BB_DIR_SBIN, BB_SUID_DROP))
-IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP))
-IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename))
IF_BLKID(APPLET(blkid, BB_DIR_SBIN, BB_SUID_DROP))
-IF_BRCTL(APPLET(brctl, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat))
IF_CATV(APPLET(catv, BB_DIR_BIN, BB_SUID_DROP))
@@ -101,7 +98,6 @@ IF_DF(APPLET(df, BB_DIR_BIN, BB_SUID_DROP))
IF_DHCPRELAY(APPLET(dhcprelay, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname))
IF_DMESG(APPLET(dmesg, BB_DIR_BIN, BB_SUID_DROP))
-IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_DOS2UNIX(APPLET_NOEXEC(dos2unix, dos2unix, BB_DIR_USR_BIN, BB_SUID_DROP, dos2unix))
IF_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_DUMPKMAP(APPLET(dumpkmap, BB_DIR_BIN, BB_SUID_DROP))
@@ -110,10 +106,8 @@ IF_DUMPLEASES(APPLET(dumpleases, BB_DIR_USR_BIN, BB_SUID_DROP))
//IF_E2LABEL(APPLET_ODDNAME(e2label, tune2fs, BB_DIR_SBIN, BB_SUID_DROP, e2label))
IF_ECHO(APPLET_NOFORK(echo, echo, BB_DIR_BIN, BB_SUID_DROP, echo))
IF_ENV(APPLET_NOEXEC(env, env, BB_DIR_USR_BIN, BB_SUID_DROP, env))
-IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_SBIN, BB_SUID_DROP, ether_wake))
IF_EXPAND(APPLET(expand, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_EXPR(APPLET(expr, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_FAKEIDENTD(APPLET(fakeidentd, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_FALSE(APPLET_NOFORK(false, false, BB_DIR_BIN, BB_SUID_DROP, false))
IF_FBSET(APPLET(fbset, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_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))
//IF_E2FSCK(APPLET_ODDNAME(fsck.ext3, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext3))
IF_FSCK_MINIX(APPLET_ODDNAME(fsck.minix, fsck_minix, BB_DIR_SBIN, BB_SUID_DROP, fsck_minix))
IF_FSYNC(APPLET_NOFORK(fsync, fsync, BB_DIR_BIN, BB_SUID_DROP, fsync))
-IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_FTPGET(APPLET_ODDNAME(ftpget, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpget))
-IF_FTPPUT(APPLET_ODDNAME(ftpput, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpput))
IF_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_GETOPT(APPLET(getopt, BB_DIR_BIN, BB_SUID_DROP))
IF_GETSEBOOL(APPLET(getsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_HD(APPLET_NOEXEC(hd, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hd))
IF_HEAD(APPLET_NOEXEC(head, head, BB_DIR_USR_BIN, BB_SUID_DROP, head))
IF_HEXDUMP(APPLET_NOEXEC(hexdump, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hexdump))
-IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_HWCLOCK(APPLET(hwclock, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IFENSLAVE(APPLET(ifenslave, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_INSTALL(APPLET(install, BB_DIR_USR_BIN, BB_SUID_DROP))
-#if ENABLE_FEATURE_IP_ADDRESS \
- || ENABLE_FEATURE_IP_ROUTE \
- || ENABLE_FEATURE_IP_LINK \
- || ENABLE_FEATURE_IP_TUNNEL \
- || ENABLE_FEATURE_IP_RULE
-IF_IP(APPLET(ip, BB_DIR_SBIN, BB_SUID_DROP))
-#endif
-IF_IPADDR(APPLET(ipaddr, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPCALC(APPLET(ipcalc, BB_DIR_BIN, BB_SUID_DROP))
IF_IPCRM(APPLET(ipcrm, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_IPCS(APPLET(ipcs, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_IPLINK(APPLET(iplink, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPROUTE(APPLET(iproute, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPRULE(APPLET(iprule, BB_DIR_SBIN, BB_SUID_DROP))
-IF_IPTUNNEL(APPLET(iptunnel, BB_DIR_SBIN, BB_SUID_DROP))
IF_KBD_MODE(APPLET(kbd_mode, BB_DIR_BIN, BB_SUID_DROP))
//IF_LENGTH(APPLET_NOFORK(length, length, BB_DIR_USR_BIN, BB_SUID_DROP, length))
IF_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))
* Therefore we use BB_SUID_MAYBE instead of BB_SUID_REQUIRE: */
IF_MOUNT(APPLET(mount, BB_DIR_BIN, IF_DESKTOP(BB_SUID_MAYBE) IF_NOT_DESKTOP(BB_SUID_DROP)))
IF_MV(APPLET(mv, BB_DIR_BIN, BB_SUID_DROP))
-IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
-IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_NETSTAT(APPLET(netstat, BB_DIR_BIN, BB_SUID_DROP))
IF_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP))
IF_NOHUP(APPLET(nohup, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_NSLOOKUP(APPLET(nslookup, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_NTPD(APPLET(ntpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_OD(APPLET(od, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_OPENVT(APPLET(openvt, BB_DIR_USR_BIN, BB_SUID_DROP))
//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))
IF_POPMAILDIR(APPLET(popmaildir, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_PRINTENV(APPLET_NOFORK(printenv, printenv, BB_DIR_BIN, BB_SUID_DROP, printenv))
IF_PRINTF(APPLET_NOFORK(printf, printf, BB_DIR_USR_BIN, BB_SUID_DROP, printf))
-IF_PSCAN(APPLET(pscan, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd))
IF_RDATE(APPLET(rdate, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_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))
IF_RESTORECON(APPLET_ODDNAME(restorecon, setfiles, BB_DIR_SBIN, BB_SUID_DROP, restorecon))
IF_RM(APPLET_NOFORK(rm, rm, BB_DIR_BIN, BB_SUID_DROP, rm))
IF_RMDIR(APPLET_NOFORK(rmdir, rmdir, BB_DIR_BIN, BB_SUID_DROP, rmdir))
-IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP))
IF_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_RUNCON(APPLET(runcon, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_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))
IF_SETLOGCONS(APPLET(setlogcons, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_SETSEBOOL(APPLET(setsebool, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_SHOWKEY(APPLET(showkey, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_SLATTACH(APPLET(slattach, BB_DIR_SBIN, BB_SUID_DROP))
/* Do not make this applet NOFORK. It breaks ^C-ing of pauses in shells: */
IF_SLEEP(APPLET(sleep, BB_DIR_BIN, BB_SUID_DROP))
IF_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))
IF_TAC(APPLET_NOEXEC(tac, tac, BB_DIR_USR_BIN, BB_SUID_DROP, tac))
IF_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP))
/* IF_TC(APPLET(tc, BB_DIR_SBIN, BB_SUID_DROP)) */
-IF_TCPSVD(APPLET_ODDNAME(tcpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, tcpsvd))
IF_TEE(APPLET(tee, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TELNET(APPLET(telnet, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TELNETD(APPLET(telnetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_TEST(APPLET_NOFORK(test, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
-#if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT
-IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TFTPD(APPLET(tftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-#endif
IF_TR(APPLET(tr, BB_DIR_USR_BIN, BB_SUID_DROP))
-/* Needs socket(AF_INET, SOCK_RAW, IPPROTO_ICMP), therefore BB_SUID_MAYBE: */
-IF_TRACEROUTE(APPLET(traceroute, BB_DIR_USR_BIN, BB_SUID_MAYBE))
-IF_TRACEROUTE6(APPLET(traceroute6, BB_DIR_USR_BIN, BB_SUID_MAYBE))
IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true))
IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP))
IF_UDHCPC(APPLET(udhcpc, BB_DIR_SBIN, BB_SUID_DROP))
IF_UDHCPD(APPLET(udhcpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
-IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd))
IF_UMOUNT(APPLET(umount, BB_DIR_BIN, BB_SUID_DROP))
IF_UNAME(APPLET(uname, BB_DIR_BIN, BB_SUID_DROP))
IF_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
IF_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep))
IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_UUENCODE(APPLET(uuencode, BB_DIR_USR_BIN, BB_SUID_DROP))
-IF_VCONFIG(APPLET(vconfig, BB_DIR_SBIN, BB_SUID_DROP))
IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami))
IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes))
-IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP))
#if !defined(PROTOTYPES) && !defined(NAME_MAIN) && !defined(MAKE_USAGE) \
&& !defined(MAKE_LINKS) && !defined(MAKE_SUID)
diff --git a/networking/Config.src b/networking/Config.src
index 43667fe..4d92188 100644
--- a/networking/Config.src
+++ b/networking/Config.src
@@ -5,8 +5,6 @@
menu "Networking Utilities"
-INSERT
-
config FEATURE_IPV6
bool "Enable IPv6 support"
default y
@@ -48,558 +46,7 @@ config VERBOSE_RESOLUTION_ERRORS
"can't resolve 'hostname.com'" and want to know more.
This may increase size of your executable a bit.
-config ARP
- bool "arp"
- default y
- select PLATFORM_LINUX
- help
- Manipulate the system ARP cache.
-
-config ARPING
- bool "arping"
- default y
- select PLATFORM_LINUX
- help
- Ping hosts by ARP packets.
-
-config BRCTL
- bool "brctl"
- default y
- select PLATFORM_LINUX
- help
- Manage ethernet bridges.
- Supports addbr/delbr and addif/delif.
-
-config FEATURE_BRCTL_FANCY
- bool "Fancy options"
- default y
- depends on BRCTL
- help
- Add support for extended option like:
- setageing, setfd, sethello, setmaxage,
- setpathcost, setportprio, setbridgeprio,
- stp
- This adds about 600 bytes.
-
-config FEATURE_BRCTL_SHOW
- bool "Support show"
- default y
- depends on BRCTL && FEATURE_BRCTL_FANCY
- help
- Add support for option which prints the current config:
- show
-
-config DNSD
- bool "dnsd"
- default y
- help
- Small and static DNS server daemon.
-
-config ETHER_WAKE
- bool "ether-wake"
- default y
- select PLATFORM_LINUX
- help
- Send a magic packet to wake up sleeping machines.
-
-config FAKEIDENTD
- bool "fakeidentd"
- default y
- select FEATURE_SYSLOG
- help
- fakeidentd listens on the ident port and returns a predefined
- fake value on any query.
-
-config FTPD
- bool "ftpd"
- default y
- help
- simple FTP daemon. You have to run it via inetd.
-
-config FEATURE_FTP_WRITE
- bool "Enable upload commands"
- default y
- depends on FTPD
- help
- Enable all kinds of FTP upload commands (-w option)
-
-config FEATURE_FTPD_ACCEPT_BROKEN_LIST
- bool "Enable workaround for RFC-violating clients"
- default y
- depends on FTPD
- help
- Some ftp clients (among them KDE's Konqueror) issue illegal
- "LIST -l" requests. This option works around such problems.
- It might prevent you from listing files starting with "-" and
- it increases the code size by ~40 bytes.
- Most other ftp servers seem to behave similar to this.
-
-config FEATURE_FTP_AUTHENTICATION
- bool "Enable authentication"
- default y
- depends on FTPD
- help
- Enable basic system login as seen in telnet etc.
-
-config FTPGET
- bool "ftpget"
- default y
- help
- Retrieve a remote file via FTP.
-
-config FTPPUT
- bool "ftpput"
- default y
- help
- Store a remote file via FTP.
-
-config FEATURE_FTPGETPUT_LONG_OPTIONS
- bool "Enable long options in ftpget/ftpput"
- default y
- depends on LONG_OPTS && (FTPGET || FTPPUT)
- help
- Support long options for the ftpget/ftpput applet.
-
-config HTTPD
- bool "httpd"
- default y
- help
- Serve web pages via an HTTP server.
-
-config FEATURE_HTTPD_RANGES
- bool "Support 'Ranges:' header"
- default y
- depends on HTTPD
- help
- Makes httpd emit "Accept-Ranges: bytes" header and understand
- "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
- downloads, seeking in multimedia players etc.
-
-config FEATURE_HTTPD_SETUID
- bool "Enable -u <user> option"
- default y
- depends on HTTPD
- help
- This option allows the server to run as a specific user
- rather than defaulting to the user that starts the server.
- Use of this option requires special privileges to change to a
- different user.
-
-config FEATURE_HTTPD_BASIC_AUTH
- bool "Enable Basic http Authentication"
- default y
- depends on HTTPD
- help
- Utilizes password settings from /etc/httpd.conf for basic
- authentication on a per url basis.
- Example for httpd.conf file:
- /adm:toor:PaSsWd
-
-config FEATURE_HTTPD_AUTH_MD5
- bool "Support MD5 crypted passwords for http Authentication"
- default y
- depends on FEATURE_HTTPD_BASIC_AUTH
- help
- Enables encrypted passwords, and wildcard user/passwords
- in httpd.conf file.
- User '*' means 'any system user name is ok',
- password of '*' means 'use system password for this user'
- Examples:
- /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0
- /adm:root:*
- /wiki:*:*
-
-config FEATURE_HTTPD_CGI
- bool "Support Common Gateway Interface (CGI)"
- default y
- depends on HTTPD
- help
- This option allows scripts and executables to be invoked
- when specific URLs are requested.
-
-config FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
- bool "Support for running scripts through an interpreter"
- default y
- depends on FEATURE_HTTPD_CGI
- help
- This option enables support for running scripts through an
- interpreter. Turn this on if you want PHP scripts to work
- properly. You need to supply an additional line in your
- httpd.conf file:
- *.php:/path/to/your/php
-
-config FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
- bool "Set REMOTE_PORT environment variable for CGI"
- default y
- depends on FEATURE_HTTPD_CGI
- help
- Use of this option can assist scripts in generating
- references that contain a unique port number.
-
-config FEATURE_HTTPD_ENCODE_URL_STR
- bool "Enable -e option (useful for CGIs written as shell scripts)"
- default y
- depends on HTTPD
- help
- This option allows html encoding of arbitrary strings for display
- by the browser. Output goes to stdout.
- For example, httpd -e "<Hello World>" produces
- "&#60Hello&#32World&#62".
-
-config FEATURE_HTTPD_ERROR_PAGES
- bool "Support for custom error pages"
- default y
- depends on HTTPD
- help
- This option allows you to define custom error pages in
- the configuration file instead of the default HTTP status
- error pages. For instance, if you add the line:
- E404:/path/e404.html
- in the config file, the server will respond the specified
- '/path/e404.html' file instead of the terse '404 NOT FOUND'
- message.
-
-config FEATURE_HTTPD_PROXY
- bool "Support for reverse proxy"
- default y
- depends on HTTPD
- help
- This option allows you to define URLs that will be forwarded
- to another HTTP server. To setup add the following line to the
- configuration file
- P:/url/:http://hostname[:port]/new/path/
- Then a request to /url/myfile will be forwarded to
- http://hostname[:port]/new/path/myfile.
-
-config FEATURE_HTTPD_GZIP
- bool "Support for GZIP content encoding"
- default y
- depends on HTTPD
- help
- Makes httpd send files using GZIP content encoding if the
- client supports it and a pre-compressed <file>.gz exists.
-
-config IFCONFIG
- bool "ifconfig"
- default y
- select PLATFORM_LINUX
- help
- Ifconfig is used to configure the kernel-resident network interfaces.
-
-config FEATURE_IFCONFIG_STATUS
- bool "Enable status reporting output (+7k)"
- default y
- depends on IFCONFIG
- help
- If ifconfig is called with no arguments it will display the status
- of the currently active interfaces.
-
-config FEATURE_IFCONFIG_SLIP
- bool "Enable slip-specific options \"keepalive\" and \"outfill\""
- default y
- depends on IFCONFIG
- help
- Allow "keepalive" and "outfill" support for SLIP. If you're not
- planning on using serial lines, leave this unchecked.
-
-config FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
- bool "Enable options \"mem_start\", \"io_addr\", and \"irq\""
- default y
- depends on IFCONFIG
- help
- Allow the start address for shared memory, start address for I/O,
- and/or the interrupt line used by the specified device.
-
-config FEATURE_IFCONFIG_HW
- bool "Enable option \"hw\" (ether only)"
- default y
- depends on IFCONFIG
- help
- Set the hardware address of this interface, if the device driver
- supports this operation. Currently, we only support the 'ether'
- class.
-
-config FEATURE_IFCONFIG_BROADCAST_PLUS
- bool "Set the broadcast automatically"
- default y
- depends on IFCONFIG
- help
- Setting this will make ifconfig attempt to find the broadcast
- automatically if the value '+' is used.
-
-config IFENSLAVE
- bool "ifenslave"
- default y
- select PLATFORM_LINUX
- help
- Userspace application to bind several interfaces
- to a logical interface (use with kernel bonding driver).
-
-config IFPLUGD
- bool "ifplugd"
- default y
- select PLATFORM_LINUX
- help
- Network interface plug detection daemon.
-
-config INETD
- bool "inetd"
- default y
- select FEATURE_SYSLOG
- help
- Internet superserver daemon
-
-config FEATURE_INETD_SUPPORT_BUILTIN_ECHO
- bool "Support echo service"
- default y
- depends on INETD
- help
- Echo received data internal inetd service
-
-config FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
- bool "Support discard service"
- default y
- depends on INETD
- help
- Internet /dev/null internal inetd service
-
-config FEATURE_INETD_SUPPORT_BUILTIN_TIME
- bool "Support time service"
- default y
- depends on INETD
- help
- Return 32 bit time since 1900 internal inetd service
-
-config FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
- bool "Support daytime service"
- default y
- depends on INETD
- help
- Return human-readable time internal inetd service
-
-config FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
- bool "Support chargen service"
- default y
- depends on INETD
- help
- Familiar character generator internal inetd service
-
-config FEATURE_INETD_RPC
- bool "Support RPC services"
- default n # very rarely used, and needs Sun RPC support in libc
- depends on INETD
- select FEATURE_HAVE_RPC
- help
- Support Sun-RPC based services
-
-config IP
- bool "ip"
- default y
- select PLATFORM_LINUX
- help
- The "ip" applet is a TCP/IP interface configuration and routing
- utility. You generally don't need "ip" to use busybox with
- TCP/IP.
-
-config FEATURE_IP_ADDRESS
- bool "ip address"
- default y
- depends on IP
- help
- Address manipulation support for the "ip" applet.
-
-config FEATURE_IP_LINK
- bool "ip link"
- default y
- depends on IP
- help
- Configure network devices with "ip".
-
-config FEATURE_IP_ROUTE
- bool "ip route"
- default y
- depends on IP
- help
- Add support for routing table management to "ip".
-
-config FEATURE_IP_ROUTE_DIR
- string "ip route configuration directory"
- default "/etc/iproute2"
- depends on FEATURE_IP_ROUTE
- help
- Location of the "ip" applet routing configuration.
-
-config FEATURE_IP_TUNNEL
- bool "ip tunnel"
- default y
- depends on IP
- help
- Add support for tunneling commands to "ip".
-
-config FEATURE_IP_RULE
- bool "ip rule"
- default y
- depends on IP
- help
- Add support for rule commands to "ip".
-
-config FEATURE_IP_NEIGH
- bool "ip neighbor"
- default y
- depends on IP
- help
- Add support for neighbor commands to "ip".
-
-config FEATURE_IP_SHORT_FORMS
- bool "Support short forms of ip commands"
- default y
- depends on IP
- help
- Also support short-form of ip <OBJECT> commands:
- ip addr -> ipaddr
- ip link -> iplink
- ip route -> iproute
- ip tunnel -> iptunnel
- ip rule -> iprule
- ip neigh -> ipneigh
-
- Say N unless you desparately need the short form of the ip
- object commands.
-
-config FEATURE_IP_RARE_PROTOCOLS
- bool "Support displaying rarely used link types"
- default n
- depends on IP
- help
- If you are not going to use links of type "frad", "econet",
- "bif" etc, you probably don't need to enable this.
- Ethernet, wireless, infrared, ppp/slip, ip tunnelling
- link types are supported without this option selected.
-
-config IPADDR
- bool
- default y
- depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_ADDRESS
-
-config IPLINK
- bool
- default y
- depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_LINK
-
-config IPROUTE
- bool
- default y
- depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_ROUTE
-
-config IPTUNNEL
- bool
- default y
- depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_TUNNEL
-
-config IPRULE
- bool
- default y
- depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_RULE
-
-config IPNEIGH
- bool
- default y
- depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_NEIGH
-
-config IPCALC
- bool "ipcalc"
- default y
- help
- ipcalc takes an IP address and netmask and calculates the
- resulting broadcast, network, and host range.
-
-config FEATURE_IPCALC_FANCY
- bool "Fancy IPCALC, more options, adds 1 kbyte"
- default y
- depends on IPCALC
- help
- Adds the options hostname, prefix and silent to the output of
- "ipcalc".
-
-config FEATURE_IPCALC_LONG_OPTIONS
- bool "Enable long options"
- default y
- depends on IPCALC && LONG_OPTS
- help
- Support long options for the ipcalc applet.
-
-config NETSTAT
- bool "netstat"
- default y
- select PLATFORM_LINUX
- help
- netstat prints information about the Linux networking subsystem.
-
-config FEATURE_NETSTAT_WIDE
- bool "Enable wide netstat output"
- default y
- depends on NETSTAT
- help
- Add support for wide columns. Useful when displaying IPv6 addresses
- (-W option).
-
-config FEATURE_NETSTAT_PRG
- bool "Enable PID/Program name output"
- default y
- depends on NETSTAT
- help
- Add support for -p flag to print out PID and program name.
- +700 bytes of code.
-
-config NSLOOKUP
- bool "nslookup"
- default y
- help
- nslookup is a tool to query Internet name servers.
-
-config NTPD
- bool "ntpd"
- default y
- select PLATFORM_LINUX
- help
- The NTP client/server daemon.
-
-config FEATURE_NTPD_SERVER
- bool "Make ntpd usable as a NTP server"
- default y
- depends on NTPD
- help
- Make ntpd usable as a NTP server. If you disable this option
- ntpd will be usable only as a NTP client.
-
-config FEATURE_NTPD_CONF
- bool "Make ntpd understand /etc/ntp.conf"
- default y
- depends on NTPD
- help
- Make ntpd look in /etc/ntp.conf for peers. Only "server address"
- is supported.
-
-config PSCAN
- bool "pscan"
- default y
- help
- Simple network port scanner.
-
-config ROUTE
- bool "route"
- default y
- select PLATFORM_LINUX
- help
- Route displays or manipulates the kernel's IP routing tables.
-
-config SLATTACH
- bool "slattach"
- default y
- select PLATFORM_LINUX
- help
- slattach is a small utility to attach network interfaces to serial
- lines.
+INSERT
#config TC
# bool "tc"
@@ -611,218 +58,6 @@ config SLATTACH
# def_bool n
# depends on TC
-config TCPSVD
- bool "tcpsvd"
- default y
- help
- tcpsvd listens on a TCP port and runs a program for each new
- connection.
-
-config TELNET
- bool "telnet"
- default y
- help
- Telnet is an interface to the TELNET protocol, but is also commonly
- used to test other simple protocols.
-
-config FEATURE_TELNET_TTYPE
- bool "Pass TERM type to remote host"
- default y
- depends on TELNET
- help
- Setting this option will forward the TERM environment variable to the
- remote host you are connecting to. This is useful to make sure that
- things like ANSI colors and other control sequences behave.
-
-config FEATURE_TELNET_AUTOLOGIN
- bool "Pass USER type to remote host"
- default y
- depends on TELNET
- help
- Setting this option will forward the USER environment variable to the
- remote host you are connecting to. This is useful when you need to
- log into a machine without telling the username (autologin). This
- option enables `-a' and `-l USER' arguments.
-
-config TELNETD
- bool "telnetd"
- default y
- select FEATURE_SYSLOG
- help
- A daemon for the TELNET protocol, allowing you to log onto the host
- running the daemon. Please keep in mind that the TELNET protocol
- sends passwords in plain text. If you can't afford the space for an
- SSH daemon and you trust your network, you may say 'y' here. As a
- more secure alternative, you should seriously consider installing the
- very small Dropbear SSH daemon instead:
- http://matt.ucc.asn.au/dropbear/dropbear.html
-
- Note that for busybox telnetd to work you need several things:
- First of all, your kernel needs:
- CONFIG_UNIX98_PTYS=y
-
- Next, you need a /dev/pts directory on your root filesystem:
-
- $ ls -ld /dev/pts
- drwxr-xr-x 2 root root 0 Sep 23 13:21 /dev/pts/
-
- Next you need the pseudo terminal master multiplexer /dev/ptmx:
-
- $ ls -la /dev/ptmx
- crw-rw-rw- 1 root tty 5, 2 Sep 23 13:55 /dev/ptmx
-
- Any /dev/ttyp[0-9]* files you may have can be removed.
- Next, you need to mount the devpts filesystem on /dev/pts using:
-
- mount -t devpts devpts /dev/pts
-
- You need to be sure that busybox has LOGIN and
- FEATURE_SUID enabled. And finally, you should make
- certain that Busybox has been installed setuid root:
-
- chown root.root /bin/busybox
- chmod 4755 /bin/busybox
-
- with all that done, telnetd _should_ work....
-
-
-config FEATURE_TELNETD_STANDALONE
- bool "Support standalone telnetd (not inetd only)"
- default y
- depends on TELNETD
- help
- Selecting this will make telnetd able to run standalone.
-
-config FEATURE_TELNETD_INETD_WAIT
- bool "Support -w SEC option (inetd wait mode)"
- default y
- depends on FEATURE_TELNETD_STANDALONE
- help
- This option allows you to run telnetd in "inet wait" mode.
- Example inetd.conf line (note "wait", not usual "nowait"):
-
- telnet stream tcp wait root /bin/telnetd telnetd -w10
-
- In this example, inetd passes _listening_ socket_ as fd 0
- to telnetd when connection appears.
- telnetd will wait for connections until all existing
- connections are closed, and no new connections
- appear during 10 seconds. Then it exits, and inetd continues
- to listen for new connections.
-
- This option is rarely used. "tcp nowait" is much more usual
- way of running tcp services, including telnetd.
- You most probably want to say N here.
-
-config TFTP
- bool "tftp"
- default y
- help
- This enables the Trivial File Transfer Protocol client program. TFTP
- is usually used for simple, small transfers such as a root image
- for a network-enabled bootloader.
-
-config TFTPD
- bool "tftpd"
- default y
- help
- This enables the Trivial File Transfer Protocol server program.
- It expects that stdin is a datagram socket and a packet
- is already pending on it. It will exit after one transfer.
- In other words: it should be run from inetd in nowait mode,
- or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
-
-comment "Common options for tftp/tftpd"
- depends on TFTP || TFTPD
-
-config FEATURE_TFTP_GET
- bool "Enable 'tftp get' and/or tftpd upload code"
- default y
- depends on TFTP || TFTPD
- help
- Add support for the GET command within the TFTP client. This allows
- a client to retrieve a file from a TFTP server.
- Also enable upload support in tftpd, if tftpd is selected.
-
- Note: this option does _not_ make tftpd capable of download
- (the usual operation people need from it)!
-
-config FEATURE_TFTP_PUT
- bool "Enable 'tftp put' and/or tftpd download code"
- default y
- depends on TFTP || TFTPD
- help
- Add support for the PUT command within the TFTP client. This allows
- a client to transfer a file to a TFTP server.
- Also enable download support in tftpd, if tftpd is selected.
-
-config FEATURE_TFTP_BLOCKSIZE
- bool "Enable 'blksize' and 'tsize' protocol options"
- default y
- depends on TFTP || TFTPD
- help
- Allow tftp to specify block size, and tftpd to understand
- "blksize" and "tsize" options.
-
-config FEATURE_TFTP_PROGRESS_BAR
- bool "Enable tftp progress meter"
- default y
- depends on TFTP && FEATURE_TFTP_BLOCKSIZE
- help
- Show progress bar.
-
-config TFTP_DEBUG
- bool "Enable debug"
- default n
- depends on TFTP || TFTPD
- help
- Make tftp[d] print debugging messages on stderr.
- This is useful if you are diagnosing a bug in tftp[d].
-
-config TRACEROUTE
- bool "traceroute"
- default y
- select PLATFORM_LINUX
- help
- Utility to trace the route of IP packets.
-
-config TRACEROUTE6
- bool "traceroute6"
- default y
- depends on FEATURE_IPV6 && TRACEROUTE
- help
- Utility to trace the route of IPv6 packets.
-
-config FEATURE_TRACEROUTE_VERBOSE
- bool "Enable verbose output"
- default y
- depends on TRACEROUTE
- help
- Add some verbosity to traceroute. This includes among other things
- hostnames and ICMP response types.
-
-config FEATURE_TRACEROUTE_USE_ICMP
- bool "Enable -I option (use ICMP instead of UDP)"
- default y
- depends on TRACEROUTE
- help
- Add option -I to use ICMP ECHO instead of UDP datagrams.
-
-config TUNCTL
- bool "tunctl"
- default y
- select PLATFORM_LINUX
- help
- tunctl creates or deletes tun devices.
-
-config FEATURE_TUNCTL_UG
- bool "Support owner:group assignment"
- default y
- depends on TUNCTL
- help
- Allow to specify owner and group of newly created interface.
- 340 bytes of pure bloat. Say no here.
-
source networking/udhcp/Config.in
config IFUPDOWN_UDHCPC_CMD_OPTIONS
@@ -834,31 +69,4 @@ config IFUPDOWN_UDHCPC_CMD_OPTIONS
Intended to alter options not available in /etc/network/interfaces.
(IE: --syslog --background etc...)
-config UDPSVD
- bool "udpsvd"
- default y
- help
- udpsvd listens on an UDP port and runs a program for each new
- connection.
-
-config VCONFIG
- bool "vconfig"
- default y
- select PLATFORM_LINUX
- help
- Creates, removes, and configures VLAN interfaces
-
-config ZCIP
- bool "zcip"
- default y
- select PLATFORM_LINUX
- select FEATURE_SYSLOG
- help
- ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
- It's a daemon that allocates and defends a dynamically assigned
- address on the 169.254/16 network, requiring no system administrator.
-
- See http://www.zeroconf.org for further details, and "zcip.script"
- in the busybox examples.
-
endmenu
diff --git a/networking/Kbuild.src b/networking/Kbuild.src
index 4ad7502..6b4fb74 100644
--- a/networking/Kbuild.src
+++ b/networking/Kbuild.src
@@ -7,39 +7,3 @@
lib-y:=
INSERT
-lib-$(CONFIG_ARP) += arp.o interface.o
-lib-$(CONFIG_ARPING) += arping.o
-lib-$(CONFIG_BRCTL) += brctl.o
-lib-$(CONFIG_DNSD) += dnsd.o
-lib-$(CONFIG_ETHER_WAKE) += ether-wake.o
-lib-$(CONFIG_FAKEIDENTD) += isrv_identd.o isrv.o
-lib-$(CONFIG_FTPD) += ftpd.o
-lib-$(CONFIG_FTPGET) += ftpgetput.o
-lib-$(CONFIG_FTPPUT) += ftpgetput.o
-lib-$(CONFIG_HTTPD) += httpd.o
-lib-$(CONFIG_IFCONFIG) += ifconfig.o interface.o
-lib-$(CONFIG_IFENSLAVE) += ifenslave.o interface.o
-lib-$(CONFIG_IFPLUGD) += ifplugd.o
-lib-$(CONFIG_INETD) += inetd.o
-lib-$(CONFIG_IP) += ip.o
-lib-$(CONFIG_IPCALC) += ipcalc.o
-lib-$(CONFIG_NAMEIF) += nameif.o
-lib-$(CONFIG_NC) += nc.o
-lib-$(CONFIG_NETSTAT) += netstat.o
-lib-$(CONFIG_NSLOOKUP) += nslookup.o
-lib-$(CONFIG_NTPD) += ntpd.o
-lib-$(CONFIG_PSCAN) += pscan.o
-lib-$(CONFIG_ROUTE) += route.o
-lib-$(CONFIG_SLATTACH) += slattach.o
-lib-$(CONFIG_TC) += tc.o
-lib-$(CONFIG_TELNET) += telnet.o
-lib-$(CONFIG_TELNETD) += telnetd.o
-lib-$(CONFIG_TFTP) += tftp.o
-lib-$(CONFIG_TFTPD) += tftp.o
-lib-$(CONFIG_TRACEROUTE) += traceroute.o
-lib-$(CONFIG_TUNCTL) += tunctl.o
-lib-$(CONFIG_VCONFIG) += vconfig.o
-lib-$(CONFIG_ZCIP) += zcip.o
-
-lib-$(CONFIG_TCPSVD) += tcpudp.o tcpudp_perhost.o
-lib-$(CONFIG_UDPSVD) += tcpudp.o tcpudp_perhost.o
diff --git a/networking/arp.c b/networking/arp.c
index 69a5816..a62a376 100644
--- a/networking/arp.c
+++ b/networking/arp.c
@@ -12,6 +12,16 @@
*
* modified for getopt32 by Arne Bernin <arne [at] alamut.de>
*/
+//config:config ARP
+//config: bool "arp"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Manipulate the system ARP cache.
+
+//applet:IF_ARP(APPLET(arp, BB_DIR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_ARP) += arp.o interface.o
//usage:#define arp_trivial_usage
//usage: "\n[-vn] [-H HWTYPE] [-i IF] -a [HOSTNAME]"
diff --git a/networking/arping.c b/networking/arping.c
index 46bd65e..5bfeb1b 100644
--- a/networking/arping.c
+++ b/networking/arping.c
@@ -5,6 +5,17 @@
* Author: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
* Busybox port: Nick Fedchik <nick@fedchik.org.ua>
*/
+//config:config ARPING
+//config: bool "arping"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Ping hosts by ARP packets.
+//config:
+
+//applet:IF_ARPING(APPLET(arping, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_ARPING) += arping.o
//usage:#define arping_trivial_usage
//usage: "[-fqbDUA] [-c CNT] [-w TIMEOUT] [-I IFACE] [-s SRC_IP] DST_IP"
diff --git a/networking/brctl.c b/networking/brctl.c
index b732096..3587689 100644
--- a/networking/brctl.c
+++ b/networking/brctl.c
@@ -12,6 +12,36 @@
/* This applet currently uses only the ioctl interface and no sysfs at all.
* At the time of this writing this was considered a feature.
*/
+//config:config BRCTL
+//config: bool "brctl"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Manage ethernet bridges.
+//config: Supports addbr/delbr and addif/delif.
+//config:
+//config:config FEATURE_BRCTL_FANCY
+//config: bool "Fancy options"
+//config: default y
+//config: depends on BRCTL
+//config: help
+//config: Add support for extended option like:
+//config: setageing, setfd, sethello, setmaxage,
+//config: setpathcost, setportprio, setbridgeprio,
+//config: stp
+//config: This adds about 600 bytes.
+//config:
+//config:config FEATURE_BRCTL_SHOW
+//config: bool "Support show"
+//config: default y
+//config: depends on BRCTL && FEATURE_BRCTL_FANCY
+//config: help
+//config: Add support for option which prints the current config:
+//config: show
+
+//applet:IF_BRCTL(APPLET(brctl, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_BRCTL) += brctl.o
//usage:#define brctl_trivial_usage
//usage: "COMMAND [BRIDGE [INTERFACE]]"
diff --git a/networking/dnsd.c b/networking/dnsd.c
index 923ad6b..7be9001 100644
--- a/networking/dnsd.c
+++ b/networking/dnsd.c
@@ -16,6 +16,15 @@
* Some bugfix and minor changes was applied by Roberto A. Foglietta who made
* the first porting of oao' scdns to busybox also.
*/
+//config:config DNSD
+//config: bool "dnsd"
+//config: default y
+//config: help
+//config: Small and static DNS server daemon.
+
+//applet:IF_DNSD(APPLET(dnsd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_DNSD) += dnsd.o
//usage:#define dnsd_trivial_usage
//usage: "[-dvs] [-c CONFFILE] [-t TTL_SEC] [-p PORT] [-i ADDR]"
diff --git a/networking/ether-wake.c b/networking/ether-wake.c
index c38547d..d7d6917 100644
--- a/networking/ether-wake.c
+++ b/networking/ether-wake.c
@@ -63,6 +63,16 @@
* doing so only works with adapters configured for unicast+broadcast Rx
* filter. That configuration consumes more power.
*/
+//config:config ETHER_WAKE
+//config: bool "ether-wake"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Send a magic packet to wake up sleeping machines.
+
+//applet:IF_ETHER_WAKE(APPLET_ODDNAME(ether-wake, ether_wake, BB_DIR_USR_SBIN, BB_SUID_DROP, ether_wake))
+
+//kbuild:lib-$(CONFIG_ETHER_WAKE) += ether-wake.o
//usage:#define ether_wake_trivial_usage
//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 4cbb9b6..d4e6c27 100644
--- a/networking/ftpd.c
+++ b/networking/ftpd.c
@@ -11,6 +11,40 @@
*
* You have to run this daemon via inetd.
*/
+//config:config FTPD
+//config: bool "ftpd"
+//config: default y
+//config: help
+//config: simple FTP daemon. You have to run it via inetd.
+//config:
+//config:config FEATURE_FTP_WRITE
+//config: bool "Enable upload commands"
+//config: default y
+//config: depends on FTPD
+//config: help
+//config: Enable all kinds of FTP upload commands (-w option)
+//config:
+//config:config FEATURE_FTPD_ACCEPT_BROKEN_LIST
+//config: bool "Enable workaround for RFC-violating clients"
+//config: default y
+//config: depends on FTPD
+//config: help
+//config: Some ftp clients (among them KDE's Konqueror) issue illegal
+//config: "LIST -l" requests. This option works around such problems.
+//config: It might prevent you from listing files starting with "-" and
+//config: it increases the code size by ~40 bytes.
+//config: Most other ftp servers seem to behave similar to this.
+//config:
+//config:config FEATURE_FTP_AUTHENTICATION
+//config: bool "Enable authentication"
+//config: default y
+//config: depends on FTPD
+//config: help
+//config: Enable basic system login as seen in telnet etc.
+
+//applet:IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_FTPD) += ftpd.o
//usage:#define ftpd_trivial_usage
//usage: "[-wvS] [-t N] [-T N] [DIR]"
diff --git a/networking/ftpgetput.c b/networking/ftpgetput.c
index 91fb456..40a3271 100644
--- a/networking/ftpgetput.c
+++ b/networking/ftpgetput.c
@@ -12,6 +12,30 @@
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config FTPGET
+//config: bool "ftpget"
+//config: default y
+//config: help
+//config: Retrieve a remote file via FTP.
+//config:
+//config:config FTPPUT
+//config: bool "ftpput"
+//config: default y
+//config: help
+//config: Store a remote file via FTP.
+//config:
+//config:config FEATURE_FTPGETPUT_LONG_OPTIONS
+//config: bool "Enable long options in ftpget/ftpput"
+//config: default y
+//config: depends on LONG_OPTS && (FTPGET || FTPPUT)
+//config: help
+//config: Support long options for the ftpget/ftpput applet.
+
+//applet:IF_FTPGET(APPLET_ODDNAME(ftpget, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpget))
+//applet:IF_FTPPUT(APPLET_ODDNAME(ftpput, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpput))
+
+//kbuild:lib-$(CONFIG_FTPGET) += ftpgetput.o
+//kbuild:lib-$(CONFIG_FTPPUT) += ftpgetput.o
//usage:#define ftpget_trivial_usage
//usage: "[OPTIONS] HOST [LOCAL_FILE] REMOTE_FILE"
diff --git a/networking/httpd.c b/networking/httpd.c
index c20642e..d301d59 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -98,6 +98,128 @@
*
*/
/* TODO: use TCP_CORK, parse_config() */
+//config:config HTTPD
+//config: bool "httpd"
+//config: default y
+//config: help
+//config: Serve web pages via an HTTP server.
+//config:
+//config:config FEATURE_HTTPD_RANGES
+//config: bool "Support 'Ranges:' header"
+//config: default y
+//config: depends on HTTPD
+//config: help
+//config: Makes httpd emit "Accept-Ranges: bytes" header and understand
+//config: "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
+//config: downloads, seeking in multimedia players etc.
+//config:
+//config:config FEATURE_HTTPD_SETUID
+//config: bool "Enable -u <user> option"
+//config: default y
+//config: depends on HTTPD
+//config: help
+//config: This option allows the server to run as a specific user
+//config: rather than defaulting to the user that starts the server.
+//config: Use of this option requires special privileges to change to a
+//config: different user.
+//config:
+//config:config FEATURE_HTTPD_BASIC_AUTH
+//config: bool "Enable Basic http Authentication"
+//config: default y
+//config: depends on HTTPD
+//config: help
+//config: Utilizes password settings from /etc/httpd.conf for basic
+//config: authentication on a per url basis.
+//config: Example for httpd.conf file:
+//config: /adm:toor:PaSsWd
+//config:
+//config:config FEATURE_HTTPD_AUTH_MD5
+//config: bool "Support MD5 crypted passwords for http Authentication"
+//config: default y
+//config: depends on FEATURE_HTTPD_BASIC_AUTH
+//config: help
+//config: Enables encrypted passwords, and wildcard user/passwords
+//config: in httpd.conf file.
+//config: User '*' means 'any system user name is ok',
+//config: password of '*' means 'use system password for this user'
+//config: Examples:
+//config: /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0
+//config: /adm:root:*
+//config: /wiki:*:*
+//config:
+//config:config FEATURE_HTTPD_CGI
+//config: bool "Support Common Gateway Interface (CGI)"
+//config: default y
+//config: depends on HTTPD
+//config: help
+//config: This option allows scripts and executables to be invoked
+//config: when specific URLs are requested.
+//config:
+//config:config FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
+//config: bool "Support for running scripts through an interpreter"
+//config: default y
+//config: depends on FEATURE_HTTPD_CGI
+//config: help
+//config: This option enables support for running scripts through an
+//config: interpreter. Turn this on if you want PHP scripts to work
+//config: properly. You need to supply an additional line in your
+//config: httpd.conf file:
+//config: *.php:/path/to/your/php
+//config:
+//config:config FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
+//config: bool "Set REMOTE_PORT environment variable for CGI"
+//config: default y
+//config: depends on FEATURE_HTTPD_CGI
+//config: help
+//config: Use of this option can assist scripts in generating
+//config: references that contain a unique port number.
+//config:
+//config:config FEATURE_HTTPD_ENCODE_URL_STR
+//config: bool "Enable -e option (useful for CGIs written as shell scripts)"
+//config: default y
+//config: depends on HTTPD
+//config: help
+//config: This option allows html encoding of arbitrary strings for display
+//config: by the browser. Output goes to stdout.
+//config: For example, httpd -e "<Hello World>" produces
+//config: "&#60Hello&#32World&#62".
+//config:
+//config:config FEATURE_HTTPD_ERROR_PAGES
+//config: bool "Support for custom error pages"
+//config: default y
+//config: depends on HTTPD
+//config: help
+//config: This option allows you to define custom error pages in
+//config: the configuration file instead of the default HTTP status
+//config: error pages. For instance, if you add the line:
+//config: E404:/path/e404.html
+//config: in the config file, the server will respond the specified
+//config: '/path/e404.html' file instead of the terse '404 NOT FOUND'
+//config: message.
+//config:
+//config:config FEATURE_HTTPD_PROXY
+//config: bool "Support for reverse proxy"
+//config: default y
+//config: depends on HTTPD
+//config: help
+//config: This option allows you to define URLs that will be forwarded
+//config: to another HTTP server. To setup add the following line to the
+//config: configuration file
+//config: P:/url/:http://hostname[:port]/new/path/
+//config: Then a request to /url/myfile will be forwarded to
+//config: http://hostname[:port]/new/path/myfile.
+//config:
+//config:config FEATURE_HTTPD_GZIP
+//config: bool "Support for GZIP content encoding"
+//config: default y
+//config: depends on HTTPD
+//config: help
+//config: Makes httpd send files using GZIP content encoding if the
+//config: client supports it and a pre-compressed <file>.gz exists.
+
+//applet:IF_HTTPD(APPLET(httpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_HTTPD) += httpd.o
//usage:#define httpd_trivial_usage
//usage: "[-ifv[v]]"
diff --git a/networking/ifconfig.c b/networking/ifconfig.c
index 8984b02..9e16936 100644
--- a/networking/ifconfig.c
+++ b/networking/ifconfig.c
@@ -25,6 +25,57 @@
* 2002-04-20
* IPV6 support added by Bart Visscher <magick@linux-fan.com>
*/
+//config:config IFCONFIG
+//config: bool "ifconfig"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Ifconfig is used to configure the kernel-resident network interfaces.
+//config:
+//config:config FEATURE_IFCONFIG_STATUS
+//config: bool "Enable status reporting output (+7k)"
+//config: default y
+//config: depends on IFCONFIG
+//config: help
+//config: If ifconfig is called with no arguments it will display the status
+//config: of the currently active interfaces.
+//config:
+//config:config FEATURE_IFCONFIG_SLIP
+//config: bool "Enable slip-specific options \"keepalive\" and \"outfill\""
+//config: default y
+//config: depends on IFCONFIG
+//config: help
+//config: Allow "keepalive" and "outfill" support for SLIP. If you're not
+//config: planning on using serial lines, leave this unchecked.
+//config:
+//config:config FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
+//config: bool "Enable options \"mem_start\", \"io_addr\", and \"irq\""
+//config: default y
+//config: depends on IFCONFIG
+//config: help
+//config: Allow the start address for shared memory, start address for I/O,
+//config: and/or the interrupt line used by the specified device.
+//config:
+//config:config FEATURE_IFCONFIG_HW
+//config: bool "Enable option \"hw\" (ether only)"
+//config: default y
+//config: depends on IFCONFIG
+//config: help
+//config: Set the hardware address of this interface, if the device driver
+//config: supports this operation. Currently, we only support the 'ether'
+//config: class.
+//config:
+//config:config FEATURE_IFCONFIG_BROADCAST_PLUS
+//config: bool "Set the broadcast automatically"
+//config: default y
+//config: depends on IFCONFIG
+//config: help
+//config: Setting this will make ifconfig attempt to find the broadcast
+//config: automatically if the value '+' is used.
+
+//applet:IF_IFCONFIG(APPLET(ifconfig, BB_DIR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_IFCONFIG) += ifconfig.o interface.o
//usage:#define ifconfig_trivial_usage
//usage: IF_FEATURE_IFCONFIG_STATUS("[-a]") " interface [address]"
diff --git a/networking/ifenslave.c b/networking/ifenslave.c
index 6b234ad..1cb765e 100644
--- a/networking/ifenslave.c
+++ b/networking/ifenslave.c
@@ -97,6 +97,17 @@
* - Code cleanup and style changes
* set version to 1.1.0
*/
+//config:config IFENSLAVE
+//config: bool "ifenslave"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Userspace application to bind several interfaces
+//config: to a logical interface (use with kernel bonding driver).
+
+//applet:IF_IFENSLAVE(APPLET(ifenslave, BB_DIR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_IFENSLAVE) += ifenslave.o interface.o
//usage:#define ifenslave_trivial_usage
//usage: "[-cdf] MASTER_IFACE SLAVE_IFACE..."
diff --git a/networking/ifplugd.c b/networking/ifplugd.c
index 029cba1..4f8a274 100644
--- a/networking/ifplugd.c
+++ b/networking/ifplugd.c
@@ -6,6 +6,16 @@
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config IFPLUGD
+//config: bool "ifplugd"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Network interface plug detection daemon.
+
+//applet:IF_IFPLUGD(APPLET(ifplugd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_IFPLUGD) += ifplugd.o
//usage:#define ifplugd_trivial_usage
//usage: "[OPTIONS]"
diff --git a/networking/inetd.c b/networking/inetd.c
index f9295e3..4d0ab2e 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -153,6 +153,59 @@
* setgid(specified group)
* setuid()
*/
+//config:config INETD
+//config: bool "inetd"
+//config: default y
+//config: select FEATURE_SYSLOG
+//config: help
+//config: Internet superserver daemon
+//config:
+//config:config FEATURE_INETD_SUPPORT_BUILTIN_ECHO
+//config: bool "Support echo service"
+//config: default y
+//config: depends on INETD
+//config: help
+//config: Echo received data internal inetd service
+//config:
+//config:config FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
+//config: bool "Support discard service"
+//config: default y
+//config: depends on INETD
+//config: help
+//config: Internet /dev/null internal inetd service
+//config:
+//config:config FEATURE_INETD_SUPPORT_BUILTIN_TIME
+//config: bool "Support time service"
+//config: default y
+//config: depends on INETD
+//config: help
+//config: Return 32 bit time since 1900 internal inetd service
+//config:
+//config:config FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
+//config: bool "Support daytime service"
+//config: default y
+//config: depends on INETD
+//config: help
+//config: Return human-readable time internal inetd service
+//config:
+//config:config FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
+//config: bool "Support chargen service"
+//config: default y
+//config: depends on INETD
+//config: help
+//config: Familiar character generator internal inetd service
+//config:
+//config:config FEATURE_INETD_RPC
+//config: bool "Support RPC services"
+//config: default n # very rarely used, and needs Sun RPC support in libc
+//config: depends on INETD
+//config: select FEATURE_HAVE_RPC
+//config: help
+//config: Support Sun-RPC based services
+
+//applet:IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_INETD) += inetd.o
//usage:#define inetd_trivial_usage
//usage: "[-fe] [-q N] [-R N] [CONFFILE]"
diff --git a/networking/ip.c b/networking/ip.c
index ddfe74e..99f150e 100644
--- a/networking/ip.c
+++ b/networking/ip.c
@@ -8,6 +8,130 @@
* Rani Assaf <rani@magic.metawire.com> 980929: resolve addresses
* Bernhard Reutner-Fischer rewrote to use index_in_substr_array
*/
+//config:config IP
+//config: bool "ip"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: The "ip" applet is a TCP/IP interface configuration and routing
+//config: utility. You generally don't need "ip" to use busybox with
+//config: TCP/IP.
+//config:
+//config:config FEATURE_IP_ADDRESS
+//config: bool "ip address"
+//config: default y
+//config: depends on IP
+//config: help
+//config: Address manipulation support for the "ip" applet.
+//config:
+//config:config FEATURE_IP_LINK
+//config: bool "ip link"
+//config: default y
+//config: depends on IP
+//config: help
+//config: Configure network devices with "ip".
+//config:
+//config:config FEATURE_IP_ROUTE
+//config: bool "ip route"
+//config: default y
+//config: depends on IP
+//config: help
+//config: Add support for routing table management to "ip".
+//config:
+//config:config FEATURE_IP_ROUTE_DIR
+//config: string "ip route configuration directory"
+//config: default "/etc/iproute2"
+//config: depends on FEATURE_IP_ROUTE
+//config: help
+//config: Location of the "ip" applet routing configuration.
+//config:
+//config:config FEATURE_IP_TUNNEL
+//config: bool "ip tunnel"
+//config: default y
+//config: depends on IP
+//config: help
+//config: Add support for tunneling commands to "ip".
+//config:
+//config:config FEATURE_IP_RULE
+//config: bool "ip rule"
+//config: default y
+//config: depends on IP
+//config: help
+//config: Add support for rule commands to "ip".
+//config:
+//config:config FEATURE_IP_NEIGH
+//config: bool "ip neighbor"
+//config: default y
+//config: depends on IP
+//config: help
+//config: Add support for neighbor commands to "ip".
+//config:
+//config:config FEATURE_IP_SHORT_FORMS
+//config: bool "Support short forms of ip commands"
+//config: default y
+//config: depends on IP
+//config: help
+//config: Also support short-form of ip <OBJECT> commands:
+//config: ip addr -> ipaddr
+//config: ip link -> iplink
+//config: ip route -> iproute
+//config: ip tunnel -> iptunnel
+//config: ip rule -> iprule
+//config: ip neigh -> ipneigh
+//config:
+//config: Say N unless you desparately need the short form of the ip
+//config: object commands.
+//config:
+//config:config FEATURE_IP_RARE_PROTOCOLS
+//config: bool "Support displaying rarely used link types"
+//config: default n
+//config: depends on IP
+//config: help
+//config: If you are not going to use links of type "frad", "econet",
+//config: "bif" etc, you probably don't need to enable this.
+//config: Ethernet, wireless, infrared, ppp/slip, ip tunnelling
+//config: link types are supported without this option selected.
+//config:
+//config:config IPADDR
+//config: bool
+//config: default y
+//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_ADDRESS
+//config:
+//config:config IPLINK
+//config: bool
+//config: default y
+//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_LINK
+//config:
+//config:config IPROUTE
+//config: bool
+//config: default y
+//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_ROUTE
+//config:
+//config:config IPTUNNEL
+//config: bool
+//config: default y
+//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_TUNNEL
+//config:
+//config:config IPRULE
+//config: bool
+//config: default y
+//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_RULE
+//config:
+//config:config IPNEIGH
+//config: bool
+//config: default y
+//config: depends on FEATURE_IP_SHORT_FORMS && FEATURE_IP_NEIGH
+
+//applet:#if ENABLE_FEATURE_IP_ADDRESS || ENABLE_FEATURE_IP_ROUTE || ENABLE_FEATURE_IP_LINK || ENABLE_FEATURE_IP_TUNNEL || ENABLE_FEATURE_IP_RULE
+//applet:IF_IP(APPLET(ip, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:#endif
+//applet:IF_IPADDR(APPLET(ipaddr, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_IPLINK(APPLET(iplink, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_IPROUTE(APPLET(iproute, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_IPRULE(APPLET(iprule, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_IPTUNNEL(APPLET(iptunnel, BB_DIR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_IP) += ip.o
/* would need to make the " | " optional depending on more than one selected: */
//usage:#define ip_trivial_usage
diff --git a/networking/ipcalc.c b/networking/ipcalc.c
index f4bacd7..2121942 100644
--- a/networking/ipcalc.c
+++ b/networking/ipcalc.c
@@ -11,6 +11,31 @@
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config IPCALC
+//config: bool "ipcalc"
+//config: default y
+//config: help
+//config: ipcalc takes an IP address and netmask and calculates the
+//config: resulting broadcast, network, and host range.
+//config:
+//config:config FEATURE_IPCALC_FANCY
+//config: bool "Fancy IPCALC, more options, adds 1 kbyte"
+//config: default y
+//config: depends on IPCALC
+//config: help
+//config: Adds the options hostname, prefix and silent to the output of
+//config: "ipcalc".
+//config:
+//config:config FEATURE_IPCALC_LONG_OPTIONS
+//config: bool "Enable long options"
+//config: default y
+//config: depends on IPCALC && LONG_OPTS
+//config: help
+//config: Support long options for the ipcalc applet.
+
+//applet:IF_IPCALC(APPLET(ipcalc, BB_DIR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_IPCALC) += ipcalc.o
//usage:#define ipcalc_trivial_usage
//usage: "[OPTIONS] ADDRESS"
diff --git a/networking/isrv_identd.c b/networking/isrv_identd.c
index 8a15926..219c64b 100644
--- a/networking/isrv_identd.c
+++ b/networking/isrv_identd.c
@@ -6,6 +6,17 @@
*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
+//config:config FAKEIDENTD
+//config: bool "fakeidentd"
+//config: default y
+//config: select FEATURE_SYSLOG
+//config: help
+//config: fakeidentd listens on the ident port and returns a predefined
+//config: fake value on any query.
+
+//applet:IF_FAKEIDENTD(APPLET(fakeidentd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_FAKEIDENTD) += isrv_identd.o isrv.o
//usage:#define fakeidentd_trivial_usage
//usage: "[-fiw] [-b ADDR] [STRING]"
diff --git a/networking/nameif.c b/networking/nameif.c
index 9b18a6d..cffd5bf 100644
--- a/networking/nameif.c
+++ b/networking/nameif.c
@@ -40,6 +40,10 @@
//config: new_interface_name mac=00:80:C8:38:91:B5
//config: new_interface_name 00:80:C8:38:91:B5
+//applet:IF_NAMEIF(APPLET(nameif, BB_DIR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_NAMEIF) += nameif.o
+
//usage:#define nameif_trivial_usage
//usage: IF_NOT_FEATURE_NAMEIF_EXTENDED(
//usage: "[-s] [-c FILE] [IFNAME HWADDR]..."
diff --git a/networking/nc.c b/networking/nc.c
index 13a9b48..1b70434 100644
--- a/networking/nc.c
+++ b/networking/nc.c
@@ -6,10 +6,6 @@
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
-
-#include "libbb.h"
-#include "common_bufsiz.h"
-
//config:config NC
//config: bool "nc"
//config: default y
@@ -43,6 +39,12 @@
//config: -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
//config: busybox-specific extensions: -f FILE.
+//applet:IF_NC(APPLET(nc, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_NC) += nc.o
+
+#include "libbb.h"
+#include "common_bufsiz.h"
#if ENABLE_NC_110_COMPAT
# include "nc_bloaty.c"
#else
diff --git a/networking/netstat.c b/networking/netstat.c
index 2196d42..90da6cd 100644
--- a/networking/netstat.c
+++ b/networking/netstat.c
@@ -13,6 +13,32 @@
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config NETSTAT
+//config: bool "netstat"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: netstat prints information about the Linux networking subsystem.
+//config:
+//config:config FEATURE_NETSTAT_WIDE
+//config: bool "Enable wide netstat output"
+//config: default y
+//config: depends on NETSTAT
+//config: help
+//config: Add support for wide columns. Useful when displaying IPv6 addresses
+//config: (-W option).
+//config:
+//config:config FEATURE_NETSTAT_PRG
+//config: bool "Enable PID/Program name output"
+//config: default y
+//config: depends on NETSTAT
+//config: help
+//config: Add support for -p flag to print out PID and program name.
+//config: +700 bytes of code.
+
+//applet:IF_NETSTAT(APPLET(netstat, BB_DIR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_NETSTAT) += netstat.o
#include "libbb.h"
#include "inet_common.h"
diff --git a/networking/nslookup.c b/networking/nslookup.c
index dd4b1ff..8e3c8fe 100644
--- a/networking/nslookup.c
+++ b/networking/nslookup.c
@@ -10,6 +10,15 @@
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config NSLOOKUP
+//config: bool "nslookup"
+//config: default y
+//config: help
+//config: nslookup is a tool to query Internet name servers.
+
+//applet:IF_NSLOOKUP(APPLET(nslookup, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_NSLOOKUP) += nslookup.o
//usage:#define nslookup_trivial_usage
//usage: "[HOST] [SERVER]"
diff --git a/networking/ntpd.c b/networking/ntpd.c
index 8ca62cf..b7fa5dc 100644
--- a/networking/ntpd.c
+++ b/networking/ntpd.c
@@ -40,6 +40,32 @@
* purpose. It is provided "as is" without express or implied warranty.
***********************************************************************
*/
+//config:config NTPD
+//config: bool "ntpd"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: The NTP client/server daemon.
+//config:
+//config:config FEATURE_NTPD_SERVER
+//config: bool "Make ntpd usable as a NTP server"
+//config: default y
+//config: depends on NTPD
+//config: help
+//config: Make ntpd usable as a NTP server. If you disable this option
+//config: ntpd will be usable only as a NTP client.
+//config:
+//config:config FEATURE_NTPD_CONF
+//config: bool "Make ntpd understand /etc/ntp.conf"
+//config: default y
+//config: depends on NTPD
+//config: help
+//config: Make ntpd look in /etc/ntp.conf for peers. Only "server address"
+//config: is supported.
+
+//applet:IF_NTPD(APPLET(ntpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_NTPD) += ntpd.o
//usage:#define ntpd_trivial_usage
//usage: "[-dnqNw"IF_FEATURE_NTPD_SERVER("l -I IFACE")"] [-S PROG] [-p PEER]..."
diff --git a/networking/pscan.c b/networking/pscan.c
index 72ed8cd..0893c35 100644
--- a/networking/pscan.c
+++ b/networking/pscan.c
@@ -5,6 +5,15 @@
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config PSCAN
+//config: bool "pscan"
+//config: default y
+//config: help
+//config: Simple network port scanner.
+
+//applet:IF_PSCAN(APPLET(pscan, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_PSCAN) += pscan.o
//usage:#define pscan_trivial_usage
//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 102a6ec..7dc2b5a 100644
--- a/networking/route.c
+++ b/networking/route.c
@@ -24,6 +24,16 @@
* Rewritten to fix several bugs, add additional error checking, and
* remove ridiculous amounts of bloat.
*/
+//config:config ROUTE
+//config: bool "route"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Route displays or manipulates the kernel's IP routing tables.
+
+//applet:IF_ROUTE(APPLET(route, BB_DIR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_ROUTE) += route.o
//usage:#define route_trivial_usage
//usage: "[{add|del|delete}]"
diff --git a/networking/slattach.c b/networking/slattach.c
index 2d1305e..9267eb1 100644
--- a/networking/slattach.c
+++ b/networking/slattach.c
@@ -12,6 +12,17 @@
*
* - The -F options allows disabling of RTS/CTS flow control.
*/
+//config:config SLATTACH
+//config: bool "slattach"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: slattach is a small utility to attach network interfaces to serial
+//config: lines.
+
+//applet:IF_SLATTACH(APPLET(slattach, BB_DIR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_SLATTACH) += slattach.o
//usage:#define slattach_trivial_usage
//usage: "[-cehmLF] [-s SPEED] [-p PROTOCOL] DEVICE"
diff --git a/networking/tc.c b/networking/tc.c
index d0bcbde..e10200c 100644
--- a/networking/tc.c
+++ b/networking/tc.c
@@ -6,6 +6,7 @@
*
* Bernhard Reutner-Fischer adjusted for busybox
*/
+//kbuild:lib-$(CONFIG_TC) += tc.o
//usage:#define tc_trivial_usage
/* //usage: "[OPTIONS] OBJECT CMD [dev STRING]" */
diff --git a/networking/tcpudp.c b/networking/tcpudp.c
index b27cf3e..94c89b9 100644
--- a/networking/tcpudp.c
+++ b/networking/tcpudp.c
@@ -28,6 +28,25 @@
* with wrong source IP...
* - don't know how to retrieve ORIGDST for udp.
*/
+//config:config TCPSVD
+//config: bool "tcpsvd"
+//config: default y
+//config: help
+//config: tcpsvd listens on a TCP port and runs a program for each new
+//config: connection.
+//config:
+//config:config UDPSVD
+//config: bool "udpsvd"
+//config: default y
+//config: help
+//config: udpsvd listens on an UDP port and runs a program for each new
+//config: connection.
+
+//applet:IF_TCPSVD(APPLET_ODDNAME(tcpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, tcpsvd))
+//applet:IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd))
+
+//kbuild:lib-$(CONFIG_TCPSVD) += tcpudp.o tcpudp_perhost.o
+//kbuild:lib-$(CONFIG_UDPSVD) += tcpudp.o tcpudp_perhost.o
//usage:#define tcpsvd_trivial_usage
//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 1a6986b..f520fe1 100644
--- a/networking/telnet.c
+++ b/networking/telnet.c
@@ -20,6 +20,35 @@
* by Fernando Silveira <swrh@gmx.net>
*
*/
+//config:config TELNET
+//config: bool "telnet"
+//config: default y
+//config: help
+//config: Telnet is an interface to the TELNET protocol, but is also commonly
+//config: used to test other simple protocols.
+//config:
+//config:config FEATURE_TELNET_TTYPE
+//config: bool "Pass TERM type to remote host"
+//config: default y
+//config: depends on TELNET
+//config: help
+//config: Setting this option will forward the TERM environment variable to the
+//config: remote host you are connecting to. This is useful to make sure that
+//config: things like ANSI colors and other control sequences behave.
+//config:
+//config:config FEATURE_TELNET_AUTOLOGIN
+//config: bool "Pass USER type to remote host"
+//config: default y
+//config: depends on TELNET
+//config: help
+//config: Setting this option will forward the USER environment variable to the
+//config: remote host you are connecting to. This is useful when you need to
+//config: log into a machine without telling the username (autologin). This
+//config: option enables `-a' and `-l USER' arguments.
+
+//applet:IF_TELNET(APPLET(telnet, BB_DIR_USR_BIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_TELNET) += telnet.o
//usage:#if ENABLE_FEATURE_TELNET_AUTOLOGIN
//usage:#define telnet_trivial_usage
diff --git a/networking/telnetd.c b/networking/telnetd.c
index 303ef1b..f06e958 100644
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
@@ -20,6 +20,78 @@
* Vladimir Oleynik <dzo@simtreas.ru> 2001
* Set process group corrections, initial busybox port
*/
+//config:config TELNETD
+//config: bool "telnetd"
+//config: default y
+//config: select FEATURE_SYSLOG
+//config: help
+//config: A daemon for the TELNET protocol, allowing you to log onto the host
+//config: running the daemon. Please keep in mind that the TELNET protocol
+//config: sends passwords in plain text. If you can't afford the space for an
+//config: SSH daemon and you trust your network, you may say 'y' here. As a
+//config: more secure alternative, you should seriously consider installing the
+//config: very small Dropbear SSH daemon instead:
+//config: http://matt.ucc.asn.au/dropbear/dropbear.html
+//config:
+//config: Note that for busybox telnetd to work you need several things:
+//config: First of all, your kernel needs:
+//config: CONFIG_UNIX98_PTYS=y
+//config:
+//config: Next, you need a /dev/pts directory on your root filesystem:
+//config:
+//config: $ ls -ld /dev/pts
+//config: drwxr-xr-x 2 root root 0 Sep 23 13:21 /dev/pts/
+//config:
+//config: Next you need the pseudo terminal master multiplexer /dev/ptmx:
+//config:
+//config: $ ls -la /dev/ptmx
+//config: crw-rw-rw- 1 root tty 5, 2 Sep 23 13:55 /dev/ptmx
+//config:
+//config: Any /dev/ttyp[0-9]* files you may have can be removed.
+//config: Next, you need to mount the devpts filesystem on /dev/pts using:
+//config:
+//config: mount -t devpts devpts /dev/pts
+//config:
+//config: You need to be sure that busybox has LOGIN and
+//config: FEATURE_SUID enabled. And finally, you should make
+//config: certain that Busybox has been installed setuid root:
+//config:
+//config: chown root.root /bin/busybox
+//config: chmod 4755 /bin/busybox
+//config:
+//config: with all that done, telnetd _should_ work....
+//config:
+//config:config FEATURE_TELNETD_STANDALONE
+//config: bool "Support standalone telnetd (not inetd only)"
+//config: default y
+//config: depends on TELNETD
+//config: help
+//config: Selecting this will make telnetd able to run standalone.
+//config:
+//config:config FEATURE_TELNETD_INETD_WAIT
+//config: bool "Support -w SEC option (inetd wait mode)"
+//config: default y
+//config: depends on FEATURE_TELNETD_STANDALONE
+//config: help
+//config: This option allows you to run telnetd in "inet wait" mode.
+//config: Example inetd.conf line (note "wait", not usual "nowait"):
+//config:
+//config: telnet stream tcp wait root /bin/telnetd telnetd -w10
+//config:
+//config: In this example, inetd passes _listening_ socket_ as fd 0
+//config: to telnetd when connection appears.
+//config: telnetd will wait for connections until all existing
+//config: connections are closed, and no new connections
+//config: appear during 10 seconds. Then it exits, and inetd continues
+//config: to listen for new connections.
+//config:
+//config: This option is rarely used. "tcp nowait" is much more usual
+//config: way of running tcp services, including telnetd.
+//config: You most probably want to say N here.
+
+//applet:IF_TELNETD(APPLET(telnetd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_TELNETD) += telnetd.o
//usage:#define telnetd_trivial_usage
//usage: "[OPTIONS]"
diff --git a/networking/tftp.c b/networking/tftp.c
index e879c46..ed86720 100644
--- a/networking/tftp.c
+++ b/networking/tftp.c
@@ -18,6 +18,78 @@
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
+//config:config TFTP
+//config: bool "tftp"
+//config: default y
+//config: help
+//config: This enables the Trivial File Transfer Protocol client program. TFTP
+//config: is usually used for simple, small transfers such as a root image
+//config: for a network-enabled bootloader.
+//config:
+//config:config TFTPD
+//config: bool "tftpd"
+//config: default y
+//config: help
+//config: This enables the Trivial File Transfer Protocol server program.
+//config: It expects that stdin is a datagram socket and a packet
+//config: is already pending on it. It will exit after one transfer.
+//config: In other words: it should be run from inetd in nowait mode,
+//config: or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
+//config:
+//config:comment "Common options for tftp/tftpd"
+//config: depends on TFTP || TFTPD
+//config:
+//config:config FEATURE_TFTP_GET
+//config: bool "Enable 'tftp get' and/or tftpd upload code"
+//config: default y
+//config: depends on TFTP || TFTPD
+//config: help
+//config: Add support for the GET command within the TFTP client. This allows
+//config: a client to retrieve a file from a TFTP server.
+//config: Also enable upload support in tftpd, if tftpd is selected.
+//config:
+//config: Note: this option does _not_ make tftpd capable of download
+//config: (the usual operation people need from it)!
+//config:
+//config:config FEATURE_TFTP_PUT
+//config: bool "Enable 'tftp put' and/or tftpd download code"
+//config: default y
+//config: depends on TFTP || TFTPD
+//config: help
+//config: Add support for the PUT command within the TFTP client. This allows
+//config: a client to transfer a file to a TFTP server.
+//config: Also enable download support in tftpd, if tftpd is selected.
+//config:
+//config:config FEATURE_TFTP_BLOCKSIZE
+//config: bool "Enable 'blksize' and 'tsize' protocol options"
+//config: default y
+//config: depends on TFTP || TFTPD
+//config: help
+//config: Allow tftp to specify block size, and tftpd to understand
+//config: "blksize" and "tsize" options.
+//config:
+//config:config FEATURE_TFTP_PROGRESS_BAR
+//config: bool "Enable tftp progress meter"
+//config: default y
+//config: depends on TFTP && FEATURE_TFTP_BLOCKSIZE
+//config: help
+//config: Show progress bar.
+//config:
+//config:config TFTP_DEBUG
+//config: bool "Enable debug"
+//config: default n
+//config: depends on TFTP || TFTPD
+//config: help
+//config: Make tftp[d] print debugging messages on stderr.
+//config: This is useful if you are diagnosing a bug in tftp[d].
+
+//applet:#if ENABLE_FEATURE_TFTP_GET || ENABLE_FEATURE_TFTP_PUT
+//applet:IF_TFTP(APPLET(tftp, BB_DIR_USR_BIN, BB_SUID_DROP))
+//applet:IF_TFTPD(APPLET(tftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
+//applet:#endif
+
+//kbuild:lib-$(CONFIG_TFTP) += tftp.o
+//kbuild:lib-$(CONFIG_TFTPD) += tftp.o
//usage:#define tftp_trivial_usage
//usage: "[OPTIONS] HOST [PORT]"
diff --git a/networking/traceroute.c b/networking/traceroute.c
index b9a9ca4..58a9b69 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -209,6 +209,40 @@
* -- Van Jacobson (van@ee.lbl.gov)
* Tue Dec 20 03:50:13 PST 1988
*/
+//config:config TRACEROUTE
+//config: bool "traceroute"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Utility to trace the route of IP packets.
+//config:
+//config:config TRACEROUTE6
+//config: bool "traceroute6"
+//config: default y
+//config: depends on FEATURE_IPV6 && TRACEROUTE
+//config: help
+//config: Utility to trace the route of IPv6 packets.
+//config:
+//config:config FEATURE_TRACEROUTE_VERBOSE
+//config: bool "Enable verbose output"
+//config: default y
+//config: depends on TRACEROUTE
+//config: help
+//config: Add some verbosity to traceroute. This includes among other things
+//config: hostnames and ICMP response types.
+//config:
+//config:config FEATURE_TRACEROUTE_USE_ICMP
+//config: bool "Enable -I option (use ICMP instead of UDP)"
+//config: default y
+//config: depends on TRACEROUTE
+//config: help
+//config: Add option -I to use ICMP ECHO instead of UDP datagrams.
+
+/* Needs socket(AF_INET, SOCK_RAW, IPPROTO_ICMP), therefore BB_SUID_MAYBE: */
+//applet:IF_TRACEROUTE(APPLET(traceroute, BB_DIR_USR_BIN, BB_SUID_MAYBE))
+//applet:IF_TRACEROUTE6(APPLET(traceroute6, BB_DIR_USR_BIN, BB_SUID_MAYBE))
+
+//kbuild:lib-$(CONFIG_TRACEROUTE) += traceroute.o
//usage:#define traceroute_trivial_usage
//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 941e8bb..fa904c2 100644
--- a/networking/tunctl.c
+++ b/networking/tunctl.c
@@ -9,6 +9,24 @@
*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
+//config:config TUNCTL
+//config: bool "tunctl"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: tunctl creates or deletes tun devices.
+//config:
+//config:config FEATURE_TUNCTL_UG
+//config: bool "Support owner:group assignment"
+//config: default y
+//config: depends on TUNCTL
+//config: help
+//config: Allow to specify owner and group of newly created interface.
+//config: 340 bytes of pure bloat. Say no here.
+
+//applet:IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_TUNCTL) += tunctl.o
//usage:#define tunctl_trivial_usage
//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 924b2f0..f302040 100644
--- a/networking/vconfig.c
+++ b/networking/vconfig.c
@@ -9,6 +9,17 @@
/* BB_AUDIT SUSv3 N/A */
+//config:config VCONFIG
+//config: bool "vconfig"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: help
+//config: Creates, removes, and configures VLAN interfaces
+
+//applet:IF_VCONFIG(APPLET(vconfig, BB_DIR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_VCONFIG) += vconfig.o
+
//usage:#define vconfig_trivial_usage
//usage: "COMMAND [OPTIONS]"
//usage:#define vconfig_full_usage "\n\n"
diff --git a/networking/zcip.c b/networking/zcip.c
index 47f3216..9122bd6 100644
--- a/networking/zcip.c
+++ b/networking/zcip.c
@@ -14,6 +14,22 @@
* routed at the IP level, though various proxies or bridges can
* certainly be used. Its naming is built over multicast DNS.
*/
+//config:config ZCIP
+//config: bool "zcip"
+//config: default y
+//config: select PLATFORM_LINUX
+//config: select FEATURE_SYSLOG
+//config: help
+//config: ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
+//config: It's a daemon that allocates and defends a dynamically assigned
+//config: address on the 169.254/16 network, requiring no system administrator.
+//config:
+//config: See http://www.zeroconf.org for further details, and "zcip.script"
+//config: in the busybox examples.
+
+//applet:IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP))
+
+//kbuild:lib-$(CONFIG_ZCIP) += zcip.o
//#define DEBUG