Convert all networking/* applets to "new style" applet definitions

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2016-11-23 09:05:14 +01:00
parent e32b64c4ec
commit 47367e1d50
35 changed files with 909 additions and 882 deletions

View File

@ -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_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_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_BASENAME(APPLET_NOFORK(basename, basename, BB_DIR_USR_BIN, BB_SUID_DROP, basename))
IF_BLKID(APPLET(blkid, BB_DIR_SBIN, BB_SUID_DROP)) 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_CAL(APPLET(cal, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat)) IF_CAT(APPLET_NOFORK(cat, cat, BB_DIR_BIN, BB_SUID_DROP, cat))
IF_CATV(APPLET(catv, BB_DIR_BIN, BB_SUID_DROP)) 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_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_DIRNAME(APPLET_NOFORK(dirname, dirname, BB_DIR_USR_BIN, BB_SUID_DROP, dirname))
IF_DMESG(APPLET(dmesg, BB_DIR_BIN, BB_SUID_DROP)) 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_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_DU(APPLET(du, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_DUMPKMAP(APPLET(dumpkmap, BB_DIR_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_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_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_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_EXPAND(APPLET(expand, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_EXPR(APPLET(expr, 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_FALSE(APPLET_NOFORK(false, false, BB_DIR_BIN, BB_SUID_DROP, false))
IF_FBSET(APPLET(fbset, BB_DIR_USR_SBIN, BB_SUID_DROP)) IF_FBSET(APPLET(fbset, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_FDFLUSH(APPLET_ODDNAME(fdflush, freeramdisk, BB_DIR_BIN, BB_SUID_DROP, fdflush)) 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_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_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_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_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_GETOPT(APPLET(getopt, BB_DIR_BIN, 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_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_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_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_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_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_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_IPCRM(APPLET(ipcrm, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_IPCS(APPLET(ipcs, 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_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_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)) 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: */ * 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_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_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_NICE(APPLET(nice, BB_DIR_BIN, BB_SUID_DROP))
IF_NOHUP(APPLET(nohup, BB_DIR_USR_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_OD(APPLET(od, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_OPENVT(APPLET(openvt, 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)) //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_POPMAILDIR(APPLET(popmaildir, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_PRINTENV(APPLET_NOFORK(printenv, printenv, BB_DIR_BIN, BB_SUID_DROP, printenv)) 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_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_PWD(APPLET_NOFORK(pwd, pwd, BB_DIR_BIN, BB_SUID_DROP, pwd))
IF_RDATE(APPLET(rdate, BB_DIR_USR_SBIN, BB_SUID_DROP)) IF_RDATE(APPLET(rdate, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_RDEV(APPLET(rdev, 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_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_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_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_RTCWAKE(APPLET(rtcwake, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_RUNCON(APPLET(runcon, BB_DIR_USR_BIN, 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)) 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_SETLOGCONS(APPLET(setlogcons, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_SETSEBOOL(APPLET(setsebool, 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_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: */ /* 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_SLEEP(APPLET(sleep, BB_DIR_BIN, BB_SUID_DROP))
IF_SORT(APPLET_NOEXEC(sort, sort, BB_DIR_USR_BIN, BB_SUID_DROP, sort)) 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_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_TAIL(APPLET(tail, BB_DIR_USR_BIN, BB_SUID_DROP))
/* IF_TC(APPLET(tc, BB_DIR_SBIN, 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_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_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)) 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_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true))
IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP)) 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_UDHCPC(APPLET(udhcpc, BB_DIR_SBIN, BB_SUID_DROP))
IF_UDHCPD(APPLET(udhcpd, BB_DIR_USR_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_UMOUNT(APPLET(umount, BB_DIR_BIN, BB_SUID_DROP))
IF_UNAME(APPLET(uname, 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)) 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_USLEEP(APPLET_NOFORK(usleep, usleep, BB_DIR_BIN, BB_SUID_DROP, usleep))
IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP)) IF_UUDECODE(APPLET(uudecode, BB_DIR_USR_BIN, BB_SUID_DROP))
IF_UUENCODE(APPLET(uuencode, 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_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_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_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) \ #if !defined(PROTOTYPES) && !defined(NAME_MAIN) && !defined(MAKE_USAGE) \
&& !defined(MAKE_LINKS) && !defined(MAKE_SUID) && !defined(MAKE_LINKS) && !defined(MAKE_SUID)

View File

@ -5,8 +5,6 @@
menu "Networking Utilities" menu "Networking Utilities"
INSERT
config FEATURE_IPV6 config FEATURE_IPV6
bool "Enable IPv6 support" bool "Enable IPv6 support"
default y default y
@ -48,558 +46,7 @@ config VERBOSE_RESOLUTION_ERRORS
"can't resolve 'hostname.com'" and want to know more. "can't resolve 'hostname.com'" and want to know more.
This may increase size of your executable a bit. This may increase size of your executable a bit.
config ARP INSERT
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.
#config TC #config TC
# bool "tc" # bool "tc"
@ -611,218 +58,6 @@ config SLATTACH
# def_bool n # def_bool n
# depends on TC # 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 source networking/udhcp/Config.in
config IFUPDOWN_UDHCPC_CMD_OPTIONS config IFUPDOWN_UDHCPC_CMD_OPTIONS
@ -834,31 +69,4 @@ config IFUPDOWN_UDHCPC_CMD_OPTIONS
Intended to alter options not available in /etc/network/interfaces. Intended to alter options not available in /etc/network/interfaces.
(IE: --syslog --background etc...) (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 endmenu

View File

@ -7,39 +7,3 @@
lib-y:= lib-y:=
INSERT 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

View File

@ -12,6 +12,16 @@
* *
* modified for getopt32 by Arne Bernin <arne [at] alamut.de> * 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:#define arp_trivial_usage
//usage: "\n[-vn] [-H HWTYPE] [-i IF] -a [HOSTNAME]" //usage: "\n[-vn] [-H HWTYPE] [-i IF] -a [HOSTNAME]"

View File

@ -5,6 +5,17 @@
* Author: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> * Author: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
* Busybox port: Nick Fedchik <nick@fedchik.org.ua> * 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:#define arping_trivial_usage
//usage: "[-fqbDUA] [-c CNT] [-w TIMEOUT] [-I IFACE] [-s SRC_IP] DST_IP" //usage: "[-fqbDUA] [-c CNT] [-w TIMEOUT] [-I IFACE] [-s SRC_IP] DST_IP"

View File

@ -12,6 +12,36 @@
/* This applet currently uses only the ioctl interface and no sysfs at all. /* This applet currently uses only the ioctl interface and no sysfs at all.
* At the time of this writing this was considered a feature. * 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:#define brctl_trivial_usage
//usage: "COMMAND [BRIDGE [INTERFACE]]" //usage: "COMMAND [BRIDGE [INTERFACE]]"

View File

@ -16,6 +16,15 @@
* Some bugfix and minor changes was applied by Roberto A. Foglietta who made * Some bugfix and minor changes was applied by Roberto A. Foglietta who made
* the first porting of oao' scdns to busybox also. * 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:#define dnsd_trivial_usage
//usage: "[-dvs] [-c CONFFILE] [-t TTL_SEC] [-p PORT] [-i ADDR]" //usage: "[-dvs] [-c CONFFILE] [-t TTL_SEC] [-p PORT] [-i ADDR]"

View File

@ -63,6 +63,16 @@
* doing so only works with adapters configured for unicast+broadcast Rx * doing so only works with adapters configured for unicast+broadcast Rx
* filter. That configuration consumes more power. * 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:#define ether_wake_trivial_usage
//usage: "[-b] [-i IFACE] [-p aa:bb:cc:dd[:ee:ff]/a.b.c.d] MAC" //usage: "[-b] [-i IFACE] [-p aa:bb:cc:dd[:ee:ff]/a.b.c.d] MAC"

View File

@ -11,6 +11,40 @@
* *
* You have to run this daemon via inetd. * 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:#define ftpd_trivial_usage
//usage: "[-wvS] [-t N] [-T N] [DIR]" //usage: "[-wvS] [-t N] [-T N] [DIR]"

View File

@ -12,6 +12,30 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * 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:#define ftpget_trivial_usage
//usage: "[OPTIONS] HOST [LOCAL_FILE] REMOTE_FILE" //usage: "[OPTIONS] HOST [LOCAL_FILE] REMOTE_FILE"

View File

@ -98,6 +98,128 @@
* *
*/ */
/* TODO: use TCP_CORK, parse_config() */ /* 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:#define httpd_trivial_usage
//usage: "[-ifv[v]]" //usage: "[-ifv[v]]"

View File

@ -25,6 +25,57 @@
* 2002-04-20 * 2002-04-20
* IPV6 support added by Bart Visscher <magick@linux-fan.com> * 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:#define ifconfig_trivial_usage
//usage: IF_FEATURE_IFCONFIG_STATUS("[-a]") " interface [address]" //usage: IF_FEATURE_IFCONFIG_STATUS("[-a]") " interface [address]"

View File

@ -97,6 +97,17 @@
* - Code cleanup and style changes * - Code cleanup and style changes
* set version to 1.1.0 * 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:#define ifenslave_trivial_usage
//usage: "[-cdf] MASTER_IFACE SLAVE_IFACE..." //usage: "[-cdf] MASTER_IFACE SLAVE_IFACE..."

View File

@ -6,6 +6,16 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * 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:#define ifplugd_trivial_usage
//usage: "[OPTIONS]" //usage: "[OPTIONS]"

View File

@ -153,6 +153,59 @@
* setgid(specified group) * setgid(specified group)
* setuid() * 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:#define inetd_trivial_usage
//usage: "[-fe] [-q N] [-R N] [CONFFILE]" //usage: "[-fe] [-q N] [-R N] [CONFFILE]"

View File

@ -8,6 +8,130 @@
* Rani Assaf <rani@magic.metawire.com> 980929: resolve addresses * Rani Assaf <rani@magic.metawire.com> 980929: resolve addresses
* Bernhard Reutner-Fischer rewrote to use index_in_substr_array * 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: */ /* would need to make the " | " optional depending on more than one selected: */
//usage:#define ip_trivial_usage //usage:#define ip_trivial_usage

View File

@ -11,6 +11,31 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * 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:#define ipcalc_trivial_usage
//usage: "[OPTIONS] ADDRESS" //usage: "[OPTIONS] ADDRESS"

View File

@ -6,6 +6,17 @@
* *
* Licensed under GPLv2, see file LICENSE in this source tree. * 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:#define fakeidentd_trivial_usage
//usage: "[-fiw] [-b ADDR] [STRING]" //usage: "[-fiw] [-b ADDR] [STRING]"

View File

@ -40,6 +40,10 @@
//config: new_interface_name mac=00:80:C8:38:91:B5 //config: new_interface_name mac=00:80:C8:38:91:B5
//config: new_interface_name 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:#define nameif_trivial_usage
//usage: IF_NOT_FEATURE_NAMEIF_EXTENDED( //usage: IF_NOT_FEATURE_NAMEIF_EXTENDED(
//usage: "[-s] [-c FILE] [IFNAME HWADDR]..." //usage: "[-s] [-c FILE] [IFNAME HWADDR]..."

View File

@ -6,10 +6,6 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/ */
#include "libbb.h"
#include "common_bufsiz.h"
//config:config NC //config:config NC
//config: bool "nc" //config: bool "nc"
//config: default y //config: default y
@ -43,6 +39,12 @@
//config: -s ADDR, -n, -u, -v, -o FILE, -z options, but loses //config: -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
//config: busybox-specific extensions: -f FILE. //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 #if ENABLE_NC_110_COMPAT
# include "nc_bloaty.c" # include "nc_bloaty.c"
#else #else

View File

@ -13,6 +13,32 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * 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 "libbb.h"
#include "inet_common.h" #include "inet_common.h"

View File

@ -10,6 +10,15 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * 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:#define nslookup_trivial_usage
//usage: "[HOST] [SERVER]" //usage: "[HOST] [SERVER]"

View File

@ -40,6 +40,32 @@
* purpose. It is provided "as is" without express or implied warranty. * 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:#define ntpd_trivial_usage
//usage: "[-dnqNw"IF_FEATURE_NTPD_SERVER("l -I IFACE")"] [-S PROG] [-p PEER]..." //usage: "[-dnqNw"IF_FEATURE_NTPD_SERVER("l -I IFACE")"] [-S PROG] [-p PEER]..."

View File

@ -5,6 +5,15 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * 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:#define pscan_trivial_usage
//usage: "[-cb] [-p MIN_PORT] [-P MAX_PORT] [-t TIMEOUT] [-T MIN_RTT] HOST" //usage: "[-cb] [-p MIN_PORT] [-P MAX_PORT] [-t TIMEOUT] [-T MIN_RTT] HOST"

View File

@ -24,6 +24,16 @@
* Rewritten to fix several bugs, add additional error checking, and * Rewritten to fix several bugs, add additional error checking, and
* remove ridiculous amounts of bloat. * 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:#define route_trivial_usage
//usage: "[{add|del|delete}]" //usage: "[{add|del|delete}]"

View File

@ -12,6 +12,17 @@
* *
* - The -F options allows disabling of RTS/CTS flow control. * - 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:#define slattach_trivial_usage
//usage: "[-cehmLF] [-s SPEED] [-p PROTOCOL] DEVICE" //usage: "[-cehmLF] [-s SPEED] [-p PROTOCOL] DEVICE"

View File

@ -6,6 +6,7 @@
* *
* Bernhard Reutner-Fischer adjusted for busybox * Bernhard Reutner-Fischer adjusted for busybox
*/ */
//kbuild:lib-$(CONFIG_TC) += tc.o
//usage:#define tc_trivial_usage //usage:#define tc_trivial_usage
/* //usage: "[OPTIONS] OBJECT CMD [dev STRING]" */ /* //usage: "[OPTIONS] OBJECT CMD [dev STRING]" */

View File

@ -28,6 +28,25 @@
* with wrong source IP... * with wrong source IP...
* - don't know how to retrieve ORIGDST for udp. * - 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:#define tcpsvd_trivial_usage
//usage: "[-hEv] [-c N] [-C N[:MSG]] [-b N] [-u USER] [-l NAME] IP PORT PROG" //usage: "[-hEv] [-c N] [-C N[:MSG]] [-b N] [-u USER] [-l NAME] IP PORT PROG"

View File

@ -20,6 +20,35 @@
* by Fernando Silveira <swrh@gmx.net> * 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:#if ENABLE_FEATURE_TELNET_AUTOLOGIN
//usage:#define telnet_trivial_usage //usage:#define telnet_trivial_usage

View File

@ -20,6 +20,78 @@
* Vladimir Oleynik <dzo@simtreas.ru> 2001 * Vladimir Oleynik <dzo@simtreas.ru> 2001
* Set process group corrections, initial busybox port * 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:#define telnetd_trivial_usage
//usage: "[OPTIONS]" //usage: "[OPTIONS]"

View File

@ -18,6 +18,78 @@
* *
* Licensed under GPLv2 or later, see file LICENSE in this source tree. * 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:#define tftp_trivial_usage
//usage: "[OPTIONS] HOST [PORT]" //usage: "[OPTIONS] HOST [PORT]"

View File

@ -209,6 +209,40 @@
* -- Van Jacobson (van@ee.lbl.gov) * -- Van Jacobson (van@ee.lbl.gov)
* Tue Dec 20 03:50:13 PST 1988 * 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:#define traceroute_trivial_usage
//usage: "[-"IF_TRACEROUTE6("46")"FIlnrv] [-f 1ST_TTL] [-m MAXTTL] [-q PROBES] [-p PORT]\n" //usage: "[-"IF_TRACEROUTE6("46")"FIlnrv] [-f 1ST_TTL] [-m MAXTTL] [-q PROBES] [-p PORT]\n"

View File

@ -9,6 +9,24 @@
* *
* Licensed under GPLv2, see file LICENSE in this source tree. * 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:#define tunctl_trivial_usage
//usage: "[-f device] ([-t name] | -d name)" IF_FEATURE_TUNCTL_UG(" [-u owner] [-g group] [-b]") //usage: "[-f device] ([-t name] | -d name)" IF_FEATURE_TUNCTL_UG(" [-u owner] [-g group] [-b]")

View File

@ -9,6 +9,17 @@
/* BB_AUDIT SUSv3 N/A */ /* 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:#define vconfig_trivial_usage
//usage: "COMMAND [OPTIONS]" //usage: "COMMAND [OPTIONS]"
//usage:#define vconfig_full_usage "\n\n" //usage:#define vconfig_full_usage "\n\n"

View File

@ -14,6 +14,22 @@
* routed at the IP level, though various proxies or bridges can * routed at the IP level, though various proxies or bridges can
* certainly be used. Its naming is built over multicast DNS. * 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 //#define DEBUG