udhcpc: tweak help text
[oweals/busybox.git] / networking / udhcp / dhcpc.c
index dcb7d42dc950e22739a8ed1d755c233bb5600cf9..ca31e1cb82e0e3d4e2a9841070efa2a12a40539e 100644 (file)
@@ -1135,27 +1135,28 @@ static void client_background(void)
 //usage:# define IF_UDHCP_VERBOSE(...)
 //usage:#endif
 //usage:#define udhcpc_trivial_usage
-//usage:       "[-fbnq"IF_UDHCP_VERBOSE("v")"oCRB] [-i IFACE] [-r IP] [-s PROG] [-p PIDFILE]\n"
-//usage:       "       [-V VENDOR] [-x OPT:VAL]... [-O OPT]..." IF_FEATURE_UDHCP_PORT(" [-P N]")
+//usage:       "[-fbq"IF_UDHCP_VERBOSE("v")IF_FEATURE_UDHCPC_ARPING("a")"oCRB] [-t N] [-T SEC] [-A SEC/-n]\n"
+//usage:       "       [-i IFACE]"IF_FEATURE_UDHCP_PORT(" [-P PORT]")" [-r IP] [-s PROG] [-p PIDFILE]\n"
+//usage:       "       [-V VENDOR] [-x OPT:VAL]... [-O OPT]..."
 //usage:#define udhcpc_full_usage "\n"
 //usage:       IF_LONG_OPTS(
 //usage:     "\n       -i,--interface IFACE    Interface to use (default eth0)"
 //usage:     "\n       -p,--pidfile FILE       Create pidfile"
 //usage:     "\n       -s,--script PROG        Run PROG at DHCP events (default "CONFIG_UDHCPC_DEFAULT_SCRIPT")"
 //usage:     "\n       -B,--broadcast          Request broadcast replies"
-//usage:     "\n       -t,--retries N          Send up to N discover packets"
-//usage:     "\n       -T,--timeout N          Pause between packets (default 3 seconds)"
-//usage:     "\n       -A,--tryagain N         Wait N seconds after failure (default 20)"
+//usage:     "\n       -t,--retries N          Send up to N discover packets (default 3)"
+//usage:     "\n       -T,--timeout SEC        Pause between packets (default 3)"
+//usage:     "\n       -A,--tryagain SEC       Wait after failure (default 20)"
+//usage:     "\n       -n,--now                Exit if lease is not obtained"
+//usage:     "\n       -q,--quit               Exit after obtaining lease"
+//usage:     "\n       -R,--release            Release IP on exit"
 //usage:     "\n       -f,--foreground         Run in foreground"
 //usage:       USE_FOR_MMU(
 //usage:     "\n       -b,--background         Background if lease is not obtained"
 //usage:       )
-//usage:     "\n       -n,--now                Exit if lease is not obtained"
-//usage:     "\n       -q,--quit               Exit after obtaining lease"
-//usage:     "\n       -R,--release            Release IP on exit"
 //usage:     "\n       -S,--syslog             Log to syslog too"
 //usage:       IF_FEATURE_UDHCP_PORT(
-//usage:     "\n       -P,--client-port N      Use port N (default 68)"
+//usage:     "\n       -P,--client-port PORT   Use PORT (default 68)"
 //usage:       )
 //usage:       IF_FEATURE_UDHCPC_ARPING(
 //usage:     "\n       -a,--arping             Use arping to validate offered address"
@@ -1180,19 +1181,19 @@ static void client_background(void)
 //usage:     "\n       -p FILE         Create pidfile"
 //usage:     "\n       -s PROG         Run PROG at DHCP events (default "CONFIG_UDHCPC_DEFAULT_SCRIPT")"
 //usage:     "\n       -B              Request broadcast replies"
-//usage:     "\n       -t N            Send up to N discover packets"
-//usage:     "\n       -T N            Pause between packets (default 3 seconds)"
-//usage:     "\n       -A N            Wait N seconds (default 20) after failure"
+//usage:     "\n       -t N            Send up to N discover packets (default 3)"
+//usage:     "\n       -T SEC          Pause between packets (default 3)"
+//usage:     "\n       -A SEC          Wait after failure (default 20)"
+//usage:     "\n       -n              Exit if lease is not obtained"
+//usage:     "\n       -q              Exit after obtaining lease"
+//usage:     "\n       -R              Release IP on exit"
 //usage:     "\n       -f              Run in foreground"
 //usage:       USE_FOR_MMU(
 //usage:     "\n       -b              Background if lease is not obtained"
 //usage:       )
-//usage:     "\n       -n              Exit if lease is not obtained"
-//usage:     "\n       -q              Exit after obtaining lease"
-//usage:     "\n       -R              Release IP on exit"
 //usage:     "\n       -S              Log to syslog too"
 //usage:       IF_FEATURE_UDHCP_PORT(
-//usage:     "\n       -P N            Use port N (default 68)"
+//usage:     "\n       -P PORT         Use PORT (default 68)"
 //usage:       )
 //usage:       IF_FEATURE_UDHCPC_ARPING(
 //usage:     "\n       -a              Use arping to validate offered address"
@@ -1442,7 +1443,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
 
                        switch (state) {
                        case INIT_SELECTING:
-                               if (packet_num < discover_retries) {
+                               if (!discover_retries || packet_num < discover_retries) {
                                        if (packet_num == 0)
                                                xid = random_xid();
                                        /* broadcast */
@@ -1471,7 +1472,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
                                packet_num = 0;
                                continue;
                        case REQUESTING:
-                               if (packet_num < discover_retries) {
+                               if (!discover_retries || packet_num < discover_retries) {
                                        /* send broadcast select packet */
                                        send_select(xid, server_addr, requested_ip);
                                        timeout = discover_timeout;
@@ -1723,7 +1724,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
 #endif
                                /* enter bound state */
                                timeout = lease_seconds / 2;
-                               temp_addr.s_addr = packet.yiaddr;
+                               temp_addr.s_addr = packet.yiaddr;
                                bb_info_msg("Lease of %s obtained, lease time %u",
                                        inet_ntoa(temp_addr), (unsigned)lease_seconds);
                                requested_ip = packet.yiaddr;