diff options
author | Thomas Markwalder <tmark@isc.org> | 2017-11-27 08:54:00 -0500 |
---|---|---|
committer | Thomas Markwalder <tmark@isc.org> | 2017-11-27 08:55:13 -0500 |
commit | c0e9661e70446890df9cdc3f5df48ab98b466600 (patch) | |
tree | e65c6b1ccd282b2297a74f036fe0449f1b5d407c /client/dhclient.c | |
parent | 3e985dbf1fe0ec0cc022e57c85d7d4f1d087f402 (diff) | |
download | isc-dhcp-c0e9661e70446890df9cdc3f5df48ab98b466600.tar.gz |
[master] Added --prefix-len-hint command line argument to dhclient
Merges in rt43792
Diffstat (limited to 'client/dhclient.c')
-rw-r--r-- | client/dhclient.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/client/dhclient.c b/client/dhclient.c index 46efee50..e25ab94b 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -98,7 +98,11 @@ int wanted_ia_pd = 0; int require_all_ias = 0; /* If the user requires all of the IAs to be available before accepting a lease 0 = no, 1 = requries */ +#if defined(DHCPv6) int dad_wait_time = 0; +int prefix_len_hint = 0; +#endif + char *mockup_relay = NULL; char *progname = NULL; @@ -156,11 +160,12 @@ static const char use_v6command[] = "Command not used for DHCPv4: %s"; #ifdef DHCP4o6 #define DHCLIENT_USAGE0 \ "[-4|-6] [-SNTPRI1dvrxi] [-nw] -4o6 <port>] [-p <port>]\n" \ -" [-D LL|LLT] [--dad-wait-time seconds]\n" +" [-D LL|LLT] [--dad-wait-time seconds]\n" \ +" [--prefix-len-hint length]\n" #else /* DHCP4o6 */ #define DHCLIENT_USAGE0 \ "[-4|-6] [-SNTPRI1dvrxi] [-nw] [-p <port>] [-D LL|LLT]\n" \ -" [--dad-wait-time seconds]\n" +" [--dad-wait-time seconds] [--prefix-len-hint length]\n" #endif #else /* DHCPv6 */ #define DHCLIENT_USAGE0 \ @@ -490,7 +495,17 @@ main(int argc, char **argv) { if (errno || (*s != '\0') || (dad_wait_time < 0)) { usage("Invalid value for --dad-wait-time: %s", argv[i]); } + } else if (!strcmp(argv[i], "--prefix-len-hint")) { + if (++i == argc) { + usage(use_noarg, argv[i-1]); + } + errno = 0; + prefix_len_hint = (int)strtol(argv[i], &s, 10); + if (errno || (*s != '\0') || (prefix_len_hint < 0)) { + usage("Invalid value for --prefix-len-hint: %s", + argv[i]); + } #endif /* DHCPv6 */ } else if (!strcmp(argv[i], "-D")) { duid_v4 = 1; |