static bool bound = false, release = true;
static time_t last_update = 0;
+static unsigned int min_update_interval = DEFAULT_MIN_UPDATE_INTERVAL;
+
int main(_unused int argc, char* const argv[])
{
// Allocate ressources
int c;
unsigned int client_options = DHCPV6_CLIENT_FQDN | DHCPV6_ACCEPT_RECONFIGURE;
- while ((c = getopt(argc, argv, "S::N:V:P:FB:c:i:r:Ru:s:kt:hedp:fa")) != -1) {
+ while ((c = getopt(argc, argv, "S::N:V:P:FB:c:i:r:Ru:s:kt:m:hedp:fa")) != -1) {
switch (c) {
case 'S':
allow_slaac_only = (optarg) ? atoi(optarg) : -1;
sol_timeout = atoi(optarg);
break;
+ case 'm':
+ min_update_interval = atoi(optarg);
+ break;
+
case 'e':
logopt |= LOG_PERROR;
break;
" -f Don't send Client FQDN option\n"
" -k Don't send a RELEASE when stopping\n"
" -t <seconds> Maximum timeout for DHCPv6-SOLICIT (3600)\n"
+ " -m <seconds> Minimum time between accepting updates (60)\n"
"\nInvocation options:\n"
" -p <pidfile> Set pidfile (/var/run/odhcp6c.pid)\n"
" -d Daemonize\n"
if (new->valid > 0) {
if (x) {
if (new->valid >= x->valid && new->valid != UINT32_MAX &&
- new->valid - x->valid < 60 &&
+ new->valid - x->valid < min_update_interval &&
new->preferred >= x->preferred &&
new->preferred != UINT32_MAX &&
- new->preferred - x->preferred < 60 &&
+ new->preferred - x->preferred < min_update_interval &&
x->class == new->class)
return false;
x->valid = new->valid;