ifplugd: new applet by Maksym Kryzhanovskyy (xmaks AT email.cz)
+3k code and 0.5k in messages. Most of the bloat due to compat :(
diff --git a/include/applets.h b/include/applets.h
index 820aaff..a41f75e 100644
--- a/include/applets.h
+++ b/include/applets.h
@@ -189,6 +189,7 @@
IF_IFCONFIG(APPLET(ifconfig, _BB_DIR_SBIN, _BB_SUID_NEVER))
IF_IFUPDOWN(APPLET_ODDNAME(ifdown, ifupdown, _BB_DIR_SBIN, _BB_SUID_NEVER, ifdown))
IF_IFENSLAVE(APPLET(ifenslave, _BB_DIR_SBIN, _BB_SUID_NEVER))
+IF_IFPLUGD(APPLET(ifplugd, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
IF_IFUPDOWN(APPLET_ODDNAME(ifup, ifupdown, _BB_DIR_SBIN, _BB_SUID_NEVER, ifup))
IF_INETD(APPLET(inetd, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
IF_INIT(APPLET(init, _BB_DIR_SBIN, _BB_SUID_NEVER))
diff --git a/include/usage.h b/include/usage.h
index 7b88a2a..3fb9961 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -1727,21 +1727,46 @@
/* "\n -r, --receive-slave Create a receive-only slave" */
#define ifenslave_example_usage \
- "To create a bond device, simply follow these three steps :\n" \
- "- ensure that the required drivers are properly loaded :\n" \
+ "To create a bond device, simply follow these three steps:\n" \
+ "- ensure that the required drivers are properly loaded:\n" \
" # modprobe bonding ; modprobe <3c59x|eepro100|pcnet32|tulip|...>\n" \
- "- assign an IP address to the bond device :\n" \
+ "- assign an IP address to the bond device:\n" \
" # ifconfig bond0 <addr> netmask <mask> broadcast <bcast>\n" \
- "- attach all the interfaces you need to the bond device :\n" \
+ "- attach all the interfaces you need to the bond device:\n" \
" # ifenslave bond0 eth0 eth1 eth2\n" \
" If bond0 didn't have a MAC address, it will take eth0's. Then, all\n" \
" interfaces attached AFTER this assignment will get the same MAC addr.\n\n" \
- " To detach a dead interface without setting the bond device down :\n" \
- " # ifenslave -d bond0 eth1\n\n" \
- " To set the bond device down and automatically release all the slaves :\n" \
- " # ifconfig bond0 down\n\n" \
- " To change active slave :\n" \
- " # ifenslave -c bond0 eth0\n" \
+ " To detach a dead interface without setting the bond device down:\n" \
+ " # ifenslave -d bond0 eth1\n\n" \
+ " To set the bond device down and automatically release all the slaves:\n" \
+ " # ifconfig bond0 down\n\n" \
+ " To change active slave:\n" \
+ " # ifenslave -c bond0 eth0\n" \
+
+#define ifplugd_trivial_usage \
+ "[options]"
+#define ifplugd_full_usage "\n\n" \
+ "Network interface plug detection daemon.\n\n" \
+ "Options:\n" \
+ "\n -n Do not daemonize" \
+ "\n -s Do not log to syslog" \
+ "\n -i IFACE Interface" \
+ "\n -f/-F Treat link detection error as link down/link up" \
+ "\n (otherwise exit on error)" \
+ "\n -a Do not up interface automatically" \
+ "\n -M Monitor creation/destruction of interface" \
+ "\n (otherwise it must exist)" \
+ "\n -r PROG Script to run" \
+ "\n -x ARG Extra argument for script" \
+ "\n -I Don't exit on nonzero exit code from script" \
+ "\n -p Don't run script on daemon startup" \
+ "\n -q Don't run script on daemon quit" \
+ "\n -l Run script on startup even if no cable is detected" \
+ "\n -t SECS Poll time in seconds" \
+ "\n -u SECS Delay before running script after link up" \
+ "\n -d SECS Delay after link down" \
+ "\n -m MODE API mode (mii, priv, ethtool, wlan, auto)" \
+ "\n -k Kill running daemon" \
#define ifup_trivial_usage \
"[-ain"IF_FEATURE_IFUPDOWN_MAPPING("m")"vf] ifaces..."
@@ -4346,17 +4371,17 @@
"CMD: {add|del|change|replace|show}\n" \
"\n" \
"qdisc [ handle QHANDLE ] [ root |"IF_FEATURE_TC_INGRESS(" ingress |")" parent CLASSID ]\n" \
- /* "\t[ estimator INTERVAL TIME_CONSTANT ]\n" */ \
- "\t[ [ QDISC_KIND ] [ help | OPTIONS ] ]\n" \
- "\tQDISC_KIND := { [p|b]fifo | tbf | prio | cbq | red | etc. }\n" \
+ /* "[ estimator INTERVAL TIME_CONSTANT ]\n" */ \
+ " [ [ QDISC_KIND ] [ help | OPTIONS ] ]\n" \
+ " QDISC_KIND := { [p|b]fifo | tbf | prio | cbq | red | etc. }\n" \
"qdisc show [ dev STRING ]"IF_FEATURE_TC_INGRESS(" [ingress]")"\n" \
"class [ classid CLASSID ] [ root | parent CLASSID ]\n" \
- "\t[ [ QDISC_KIND ] [ help | OPTIONS ] ]\n" \
+ " [ [ QDISC_KIND ] [ help | OPTIONS ] ]\n" \
"class show [ dev STRING ] [ root | parent CLASSID ]\n" \
"filter [ pref PRIO ] [ protocol PROTO ]\n" \
/* "\t[ estimator INTERVAL TIME_CONSTANT ]\n" */ \
- "\t[ root | classid CLASSID ] [ handle FILTERID ]\n" \
- "\t[ [ FILTER_TYPE ] [ help | OPTIONS ] ]\n" \
+ " [ root | classid CLASSID ] [ handle FILTERID ]\n" \
+ " [ [ FILTER_TYPE ] [ help | OPTIONS ] ]\n" \
"filter show [ dev STRING ] [ root | parent CLASSID ]"
#define tcpsvd_trivial_usage \