From: Hans Dedecker Date: Sun, 5 Dec 2021 17:27:07 +0000 (+0100) Subject: Revert "dhcpv6: add a minimum valid lifetime for IA_PD updates" X-Git-Url: http://git.openwrt.org/openwrt/svn-archive.git?a=commitdiff_plain;h=39b584bcac8770619b545d6ae344758f87028612;p=project%2Fodhcp6c.git Revert "dhcpv6: add a minimum valid lifetime for IA_PD updates" Reverts commit ca43ea3f436c76fab0b8e3f170725c1d91ebdc36 as gracefull handling of IA_PD options with valid_liftime 0 is supported in commit c9578e10428d12c683ceb05e17970a616817f577 --- diff --git a/src/dhcpv6.c b/src/dhcpv6.c index 8365dc4..793b3be 100644 --- a/src/dhcpv6.c +++ b/src/dhcpv6.c @@ -114,9 +114,6 @@ static uint8_t reconf_key[16]; // client options static unsigned int client_options = 0; -// Minimum valid lifetime for IA_PD updates -static unsigned int pd_safe_valid = 0; - static uint32_t ntohl_unaligned(const uint8_t *data) { uint32_t buf; @@ -196,11 +193,10 @@ static char *dhcpv6_status_code_to_str(uint16_t code) return "Unknown"; } -int init_dhcpv6(const char *ifname, unsigned int options, int sol_timeout, unsigned int ia_pd_safe_valid) +int init_dhcpv6(const char *ifname, unsigned int options, int sol_timeout) { client_options = options; dhcpv6_retx[DHCPV6_MSG_SOLICIT].max_timeo = sol_timeout; - pd_safe_valid = ia_pd_safe_valid; sock = socket(AF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, IPPROTO_UDP); if (sock < 0) @@ -1417,7 +1413,7 @@ static unsigned int dhcpv6_parse_ia(void *opt, void *end) } if (ok) { - if (odhcp6c_update_entry(STATE_IA_PD, &entry, pd_safe_valid, 0)) + if (odhcp6c_update_entry(STATE_IA_PD, &entry, 0, 0)) updated_IAs++; syslog(LOG_INFO, "%s/%d preferred %d valid %d", diff --git a/src/odhcp6c.c b/src/odhcp6c.c index e2d4fca..0f58945 100644 --- a/src/odhcp6c.c +++ b/src/odhcp6c.c @@ -178,7 +178,6 @@ int main(_unused int argc, char* const argv[]) struct odhcp6c_opt *opt; int ia_pd_iaid_index = 0; int sol_timeout = DHCPV6_SOL_MAX_RT; - unsigned int ia_pd_safe_valid = 5; int verbosity = 0; bool help = false, daemonize = false; int logopt = LOG_PID; @@ -187,7 +186,7 @@ int main(_unused int argc, char* const argv[]) unsigned int ra_options = RA_RDNSS_DEFAULT_LIFETIME; unsigned int ra_holdoff_interval = RA_MIN_ADV_INTERVAL; - while ((c = getopt(argc, argv, "S::N:V:P:FB:c:i:r:Ru:Ux:s:kt:m:D:Lhedp:fav")) != -1) { + while ((c = getopt(argc, argv, "S::N:V:P:FB:c:i:r:Ru:Ux:s:kt:m:Lhedp:fav")) != -1) { switch (c) { case 'S': allow_slaac_only = (optarg) ? atoi(optarg) : -1; @@ -349,12 +348,6 @@ int main(_unused int argc, char* const argv[]) ra_holdoff_interval = atoi(optarg); break; - case 'D': - ia_pd_safe_valid = atoi(optarg); - if (ia_pd_safe_valid > 60) - ia_pd_safe_valid = 60; - break; - case 'L': ra_options &= ~RA_RDNSS_DEFAULT_LIFETIME; break; @@ -419,7 +412,7 @@ int main(_unused int argc, char* const argv[]) signal(SIGUSR2, sighandler); if ((urandom_fd = open("/dev/urandom", O_CLOEXEC | O_RDONLY)) < 0 || - init_dhcpv6(ifname, client_options, sol_timeout, ia_pd_safe_valid) || + init_dhcpv6(ifname, client_options, sol_timeout) || ra_init(ifname, &ifid, ra_options, ra_holdoff_interval) || script_init(script, ifname)) { syslog(LOG_ERR, "failed to initialize: %s", strerror(errno)); @@ -630,7 +623,6 @@ static int usage(void) " -k Don't send a RELEASE when stopping\n" " -t Maximum timeout for DHCPv6-SOLICIT (120)\n" " -m Minimum time between accepting RA updates (3)\n" - " -D Minimum valid lifetime for IA_PD updates (5)\n" " -L Ignore default lifetime for RDNSS records\n" " -U Ignore Server Unicast option\n" "\nInvocation options:\n" diff --git a/src/odhcp6c.h b/src/odhcp6c.h index 0a3be80..d27cdda 100644 --- a/src/odhcp6c.h +++ b/src/odhcp6c.h @@ -392,7 +392,7 @@ struct odhcp6c_opt { const char *str; }; -int init_dhcpv6(const char *ifname, unsigned int client_options, int sol_timeout, unsigned int ia_pd_safe_valid); +int init_dhcpv6(const char *ifname, unsigned int client_options, int sol_timeout); int dhcpv6_set_ia_mode(enum odhcp6c_ia_mode na, enum odhcp6c_ia_mode pd); int dhcpv6_request(enum dhcpv6_msg type); int dhcpv6_poll_reconfigure(void);