summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Kelley <simon@thekelleys.org.uk>2022-11-06 20:18:27 +0000
committerSimon Kelley <simon@thekelleys.org.uk>2022-11-06 20:18:27 +0000
commit5b868c213bc2eadfa286db9cbc48c686b105263a (patch)
tree64704f2b4abe0f03564938398a03d2ed5928d8fc
parent2d8905dafd41330d661f2e6e78f19b4199ce9e6b (diff)
downloaddnsmasq-5b868c213bc2eadfa286db9cbc48c686b105263a.tar.gz
Fix breakage of --local=/domain.name/1.2.3.4 in immediately previous commit.
-rw-r--r--src/option.c12
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;
}