mirror of
https://git.busybox.net/busybox.git
synced 2024-12-14 16:03:26 +08:00
Roy Walker writes:
Here is a patch against the current subversion repository, that makes udhcpc have an adjustable timeout. Works for both foreground and before it drops to the background. This brings it more in-line with ISC dhcpc. Use like so: udhcpc --timeout=10 ... or udhcpc -T 10 ... Still shooting for 1.1.1 this month? Would really be great if you could get this in that release. Please give credit to Paul Pacheco - ppacheco@gmail.com.
This commit is contained in:
parent
c30f445b08
commit
28a6afe975
@ -59,6 +59,7 @@ struct client_config_t client_config = {
|
|||||||
.fqdn = NULL,
|
.fqdn = NULL,
|
||||||
.ifindex = 0,
|
.ifindex = 0,
|
||||||
.retries = 3,
|
.retries = 3,
|
||||||
|
.timeout = 3,
|
||||||
.arp = "\0\0\0\0\0\0", /* appease gcc-3.0 */
|
.arp = "\0\0\0\0\0\0", /* appease gcc-3.0 */
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -84,6 +85,8 @@ static void ATTRIBUTE_NORETURN show_usage(void)
|
|||||||
" -r, --request=IP IP address to request (default: none)\n"
|
" -r, --request=IP IP address to request (default: none)\n"
|
||||||
" -s, --script=file Run file at dhcp events (default:\n"
|
" -s, --script=file Run file at dhcp events (default:\n"
|
||||||
" " DEFAULT_SCRIPT ")\n"
|
" " DEFAULT_SCRIPT ")\n"
|
||||||
|
" -T, --timeout=seconds Try to get the lease for the amount of\n"
|
||||||
|
" seconds (default: 3)\n"
|
||||||
" -v, --version Display version\n"
|
" -v, --version Display version\n"
|
||||||
);
|
);
|
||||||
exit(0);
|
exit(0);
|
||||||
@ -202,6 +205,7 @@ int main(int argc, char *argv[])
|
|||||||
{"quit", no_argument, 0, 'q'},
|
{"quit", no_argument, 0, 'q'},
|
||||||
{"request", required_argument, 0, 'r'},
|
{"request", required_argument, 0, 'r'},
|
||||||
{"script", required_argument, 0, 's'},
|
{"script", required_argument, 0, 's'},
|
||||||
|
{"timeout", required_argument, 0, 'T'},
|
||||||
{"version", no_argument, 0, 'v'},
|
{"version", no_argument, 0, 'v'},
|
||||||
{"retries", required_argument, 0, 't'},
|
{"retries", required_argument, 0, 't'},
|
||||||
{0, 0, 0, 0}
|
{0, 0, 0, 0}
|
||||||
@ -210,7 +214,7 @@ int main(int argc, char *argv[])
|
|||||||
/* get options */
|
/* get options */
|
||||||
while (1) {
|
while (1) {
|
||||||
int option_index = 0;
|
int option_index = 0;
|
||||||
c = getopt_long(argc, argv, "c:CV:fbH:h:F:i:np:qr:s:t:v", arg_options, &option_index);
|
c = getopt_long(argc, argv, "c:CV:fbH:h:F:i:np:qr:s:T:t:v", arg_options, &option_index);
|
||||||
if (c == -1) break;
|
if (c == -1) break;
|
||||||
|
|
||||||
switch (c) {
|
switch (c) {
|
||||||
@ -286,6 +290,9 @@ int main(int argc, char *argv[])
|
|||||||
case 's':
|
case 's':
|
||||||
client_config.script = optarg;
|
client_config.script = optarg;
|
||||||
break;
|
break;
|
||||||
|
case 'T':
|
||||||
|
client_config.timeout = atoi(optarg);
|
||||||
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
client_config.retries = atoi(optarg);
|
client_config.retries = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
@ -365,7 +372,7 @@ int main(int argc, char *argv[])
|
|||||||
/* send discover packet */
|
/* send discover packet */
|
||||||
send_discover(xid, requested_ip); /* broadcast */
|
send_discover(xid, requested_ip); /* broadcast */
|
||||||
|
|
||||||
timeout = now + ((packet_num == 2) ? 4 : 2);
|
timeout = now + client_config.timeout;
|
||||||
packet_num++;
|
packet_num++;
|
||||||
} else {
|
} else {
|
||||||
run_script(NULL, "leasefail");
|
run_script(NULL, "leasefail");
|
||||||
|
@ -30,6 +30,7 @@ struct client_config_t {
|
|||||||
uint8_t *fqdn; /* Optional fully qualified domain name to use */
|
uint8_t *fqdn; /* Optional fully qualified domain name to use */
|
||||||
int ifindex; /* Index number of the interface to use */
|
int ifindex; /* Index number of the interface to use */
|
||||||
int retries; /* Max number of request packets */
|
int retries; /* Max number of request packets */
|
||||||
|
int timeout; /* Number of seconds to try to get a lease */
|
||||||
uint8_t arp[6]; /* Our arp address */
|
uint8_t arp[6]; /* Our arp address */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user