Commit 963c380d authored by Simon Kelley's avatar Simon Kelley

Merge branch 'master' into dnssec

parents 9d633048 00238fb0
...@@ -4,6 +4,9 @@ version 2.69 ...@@ -4,6 +4,9 @@ version 2.69
on the BSD platform. Thanks to Matthias Andree for on the BSD platform. Thanks to Matthias Andree for
valuable research on how to implement this. valuable research on how to implement this.
Fix infinite loop associated with some --bogus-nxdomain
configs. Thanks fogobogo for the bug report.
version 2.68 version 2.68
Use random addresses for DHCPv6 temporary address Use random addresses for DHCPv6 temporary address
......
...@@ -581,7 +581,7 @@ struct dhcp_lease { ...@@ -581,7 +581,7 @@ struct dhcp_lease {
struct in6_addr addr6; struct in6_addr addr6;
int iaid; int iaid;
struct slaac_address { struct slaac_address {
struct in6_addr addr, local; struct in6_addr addr;
time_t ping_time; time_t ping_time;
int backoff; /* zero -> confirmed */ int backoff; /* zero -> confirmed */
struct slaac_address *next; struct slaac_address *next;
......
...@@ -2737,7 +2737,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma ...@@ -2737,7 +2737,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
else else
{ {
char *cp, *lastp = NULL, last = 0; char *cp, *lastp = NULL, last = 0;
int fac = 1; int fac = 1, isdig = 0;
if (strlen(a[j]) > 1) if (strlen(a[j]) > 1)
{ {
...@@ -2768,7 +2768,9 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma ...@@ -2768,7 +2768,9 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
} }
for (cp = a[j]; *cp; cp++) for (cp = a[j]; *cp; cp++)
if (!isdigit((unsigned char)*cp) && *cp != ' ') if (isdigit((unsigned char)*cp))
isdig = 1;
else if (*cp != ' ')
break; break;
if (*cp) if (*cp)
...@@ -2792,7 +2794,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma ...@@ -2792,7 +2794,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
new->domain = strip_hostname(new->hostname); new->domain = strip_hostname(new->hostname);
} }
} }
else else if (isdig)
{ {
new->lease_time = atoi(a[j]) * fac; new->lease_time = atoi(a[j]) * fac;
/* Leases of a minute or less confuse /* Leases of a minute or less confuse
......
...@@ -1299,7 +1299,7 @@ int check_for_bogus_wildcard(struct dns_header *header, size_t qlen, char *name, ...@@ -1299,7 +1299,7 @@ int check_for_bogus_wildcard(struct dns_header *header, size_t qlen, char *name,
/* Found a bogus address. Insert that info here, since there no SOA record /* Found a bogus address. Insert that info here, since there no SOA record
to get the ttl from in the normal processing */ to get the ttl from in the normal processing */
cache_start_insert(); cache_start_insert();
cache_insert(name, NULL, now, ttl, F_IPV4 | F_FORWARD | F_NEG | F_NXDOMAIN | F_CONFIG); cache_insert(name, NULL, now, ttl, F_IPV4 | F_FORWARD | F_NEG | F_NXDOMAIN);
cache_end_insert(); cache_end_insert();
return 1; return 1;
......
...@@ -93,7 +93,6 @@ void slaac_add_addrs(struct dhcp_lease *lease, time_t now, int force) ...@@ -93,7 +93,6 @@ void slaac_add_addrs(struct dhcp_lease *lease, time_t now, int force)
slaac->ping_time = now; slaac->ping_time = now;
slaac->backoff = 1; slaac->backoff = 1;
slaac->addr = addr; slaac->addr = addr;
slaac->local = context->local6;
/* Do RA's to prod it */ /* Do RA's to prod it */
ra_start_unsolicted(now, context); ra_start_unsolicted(now, context);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment