diff options
author | Simon Kelley <simon@thekelleys.org.uk> | 2022-11-06 20:18:27 +0000 |
---|---|---|
committer | Simon Kelley <simon@thekelleys.org.uk> | 2022-11-06 20:18:27 +0000 |
commit | 5b868c213bc2eadfa286db9cbc48c686b105263a (patch) | |
tree | 64704f2b4abe0f03564938398a03d2ed5928d8fc | |
parent | 2d8905dafd41330d661f2e6e78f19b4199ce9e6b (diff) | |
download | dnsmasq-5b868c213bc2eadfa286db9cbc48c686b105263a.tar.gz |
Fix breakage of --local=/domain.name/1.2.3.4 in immediately previous commit.
-rw-r--r-- | src/option.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/option.c b/src/option.c index 163421a..53df70a 100644 --- a/src/option.c +++ b/src/option.c @@ -2977,9 +2977,9 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma if (servers_only && option == 'S') flags |= SERV_FROM_FILE; - while (parse_server_next(&sdetails)) + while ((flags & SERV_LITERAL_ADDRESS) || parse_server_next(&sdetails)) { - if ((err = parse_server_addr(&sdetails))) + if (!(flags & SERV_LITERAL_ADDRESS) && (err = parse_server_addr(&sdetails))) ret_err(err); /* When source is set only use DNS records of the same type and skip all others */ @@ -3009,9 +3009,13 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma domain += strlen(domain) + 1; } + + if (flags & SERV_LITERAL_ADDRESS) + break; } - if (sdetails.resolved) - freeaddrinfo(sdetails.hostinfo); + + if (sdetails.resolved) + freeaddrinfo(sdetails.hostinfo); break; } |