From: Simon Kelley Date: Tue, 16 Dec 2014 18:25:17 +0000 (+0000) Subject: Fix breakage of --domain=,,local X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3ad3f3bbd4ee716a7d2fb1e115cf89bd1b1a5de9;p=people%2Fms%2Fdnsmasq.git Fix breakage of --domain=,,local --- diff --git a/CHANGELOG b/CHANGELOG index 9174b0b..9e6c7aa 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,6 +10,10 @@ version 2.73 Use inotify for checking on updates to /etc/resolv.conf and friends under Linux. This fixes race conditions when the files are updated rapidly and saves CPU by noy polling. + + Fix breakage of --domain=,,local - only reverse + queries were intercepted. THis appears to have been broken + since 2.69. Thanks to Josh Stone for finding the bug. version 2.72 diff --git a/src/option.c b/src/option.c index b08e98e..209fa69 100644 --- a/src/option.c +++ b/src/option.c @@ -1941,10 +1941,17 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma else { /* generate the equivalent of - local=// local=/xxx.yyy.zzz.in-addr.arpa/ */ struct server *serv = add_rev4(new->start, msize); serv->flags |= SERV_NO_ADDR; + + /* local=// */ + serv = opt_malloc(sizeof(struct server)); + memset(serv, 0, sizeof(struct server)); + serv->domain = d; + serv->flags = SERV_HAS_DOMAIN | SERV_NO_ADDR; + serv->next = daemon->servers; + daemon->servers = serv; } } } @@ -1978,10 +1985,17 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma else { /* generate the equivalent of - local=// local=/xxx.yyy.zzz.ip6.arpa/ */ struct server *serv = add_rev6(&new->start6, msize); serv->flags |= SERV_NO_ADDR; + + /* local=// */ + serv = opt_malloc(sizeof(struct server)); + memset(serv, 0, sizeof(struct server)); + serv->domain = d; + serv->flags = SERV_HAS_DOMAIN | SERV_NO_ADDR; + serv->next = daemon->servers; + daemon->servers = serv; } } }