diff options
author | eric <> | 2018-12-15 15:16:12 +0000 |
---|---|---|
committer | eric <> | 2018-12-15 15:16:12 +0000 |
commit | 987422333c6bf4871e97fd14e80c6fe6b937af6c (patch) | |
tree | 9e8c744de1e51b27c2b37b1b5757fae46e8f7b01 /src/regress/lib/libc/asr | |
parent | d44c7e0fd6df3e642957216aea5f5fb9814b4056 (diff) | |
download | openbsd-987422333c6bf4871e97fd14e80c6fe6b937af6c.tar.gz openbsd-987422333c6bf4871e97fd14e80c6fe6b937af6c.tar.bz2 openbsd-987422333c6bf4871e97fd14e80c6fe6b937af6c.zip |
add a -R option to set/unset resolver flags.libressl-v2.9.0
use strcasecmp for reading args.
Diffstat (limited to 'src/regress/lib/libc/asr')
-rw-r--r-- | src/regress/lib/libc/asr/bin/common.c | 68 | ||||
-rw-r--r-- | src/regress/lib/libc/asr/bin/common.h | 4 | ||||
-rw-r--r-- | src/regress/lib/libc/asr/bin/getaddrinfo.c | 7 | ||||
-rw-r--r-- | src/regress/lib/libc/asr/bin/gethostnamadr.c | 7 | ||||
-rw-r--r-- | src/regress/lib/libc/asr/bin/getnameinfo.c | 7 | ||||
-rw-r--r-- | src/regress/lib/libc/asr/bin/getnetnamadr.c | 7 | ||||
-rw-r--r-- | src/regress/lib/libc/asr/bin/getrrsetbyname.c | 7 | ||||
-rw-r--r-- | src/regress/lib/libc/asr/bin/res_mkquery.c | 7 | ||||
-rw-r--r-- | src/regress/lib/libc/asr/bin/res_query.c | 7 |
9 files changed, 101 insertions, 20 deletions
diff --git a/src/regress/lib/libc/asr/bin/common.c b/src/regress/lib/libc/asr/bin/common.c index c808c86d61..08a7bccbb7 100644 --- a/src/regress/lib/libc/asr/bin/common.c +++ b/src/regress/lib/libc/asr/bin/common.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: common.c,v 1.3 2014/08/10 07:31:58 guenther Exp $ */ | 1 | /* $OpenBSD: common.c,v 1.4 2018/12/15 15:16:12 eric Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> | 3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> |
4 | * | 4 | * |
@@ -86,8 +86,8 @@ kv_lookup_name(struct kv *kv, int code, char *buf, size_t sz) | |||
86 | } | 86 | } |
87 | 87 | ||
88 | struct keyval { | 88 | struct keyval { |
89 | const char *key; | 89 | const char *key; |
90 | uint16_t value; | 90 | int value; |
91 | }; | 91 | }; |
92 | 92 | ||
93 | static struct keyval kv_class[] = { | 93 | static struct keyval kv_class[] = { |
@@ -135,6 +135,24 @@ static struct keyval kv_rcode[] = { | |||
135 | { NULL, 0 }, | 135 | { NULL, 0 }, |
136 | }; | 136 | }; |
137 | 137 | ||
138 | static struct keyval kv_resopt[] = { | ||
139 | { "DEBUG", RES_DEBUG }, | ||
140 | { "AAONLY", RES_AAONLY }, | ||
141 | { "USEVC", RES_USEVC }, | ||
142 | { "PRIMARY", RES_PRIMARY }, | ||
143 | { "IGNTC", RES_IGNTC }, | ||
144 | { "RECURSE", RES_RECURSE }, | ||
145 | { "DEFNAMES", RES_DEFNAMES }, | ||
146 | { "STAYOPEN", RES_STAYOPEN }, | ||
147 | { "DNSRCH", RES_DNSRCH }, | ||
148 | { "INSECURE1", RES_INSECURE1 }, | ||
149 | { "INSECURE2", RES_INSECURE2 }, | ||
150 | { "NOALIASES", RES_NOALIASES }, | ||
151 | { "USE_INET6", RES_USE_INET6 }, | ||
152 | { "USE_EDNS0", RES_USE_EDNS0 }, | ||
153 | { "USE_DNSSEC", RES_USE_DNSSEC }, | ||
154 | { NULL, 0 }, | ||
155 | }; | ||
138 | 156 | ||
139 | const char * | 157 | const char * |
140 | rcodetostr(uint16_t v) | 158 | rcodetostr(uint16_t v) |
@@ -187,7 +205,7 @@ strtotype(const char *name) | |||
187 | size_t i; | 205 | size_t i; |
188 | 206 | ||
189 | for(i = 0; kv_type[i].key; i++) | 207 | for(i = 0; kv_type[i].key; i++) |
190 | if (!strcmp(kv_type[i].key, name)) | 208 | if (!strcasecmp(kv_type[i].key, name)) |
191 | return (kv_type[i].value); | 209 | return (kv_type[i].value); |
192 | 210 | ||
193 | return (0); | 211 | return (0); |
@@ -199,12 +217,52 @@ strtoclass(const char *name) | |||
199 | size_t i; | 217 | size_t i; |
200 | 218 | ||
201 | for(i = 0; kv_class[i].key; i++) | 219 | for(i = 0; kv_class[i].key; i++) |
202 | if (!strcmp(kv_class[i].key, name)) | 220 | if (!strcasecmp(kv_class[i].key, name)) |
203 | return (kv_class[i].value); | 221 | return (kv_class[i].value); |
204 | 222 | ||
205 | return (0); | 223 | return (0); |
206 | } | 224 | } |
207 | 225 | ||
226 | int | ||
227 | strtoresopt(const char *name) | ||
228 | { | ||
229 | size_t i; | ||
230 | |||
231 | for(i = 0; kv_resopt[i].key; i++) | ||
232 | if (!strcasecmp(kv_resopt[i].key, name)) | ||
233 | return (kv_resopt[i].value); | ||
234 | |||
235 | return (0); | ||
236 | } | ||
237 | |||
238 | void | ||
239 | parseresopt(const char *name) | ||
240 | { | ||
241 | static int init = 0; | ||
242 | int flag, neg = 0; | ||
243 | |||
244 | if (init == 0) { | ||
245 | res_init(); | ||
246 | init = 1; | ||
247 | } | ||
248 | |||
249 | if (name[0] == '-') { | ||
250 | neg = 1; | ||
251 | name++; | ||
252 | } | ||
253 | else if (name[0] == '+') | ||
254 | name++; | ||
255 | |||
256 | flag = strtoresopt(name); | ||
257 | if (flag == 0) | ||
258 | errx(1, "unknown reslover option %s", name); | ||
259 | |||
260 | if (neg) | ||
261 | _res.options &= ~flag; | ||
262 | else | ||
263 | _res.options |= flag; | ||
264 | } | ||
265 | |||
208 | void | 266 | void |
209 | print_hostent(struct hostent *e) | 267 | print_hostent(struct hostent *e) |
210 | { | 268 | { |
diff --git a/src/regress/lib/libc/asr/bin/common.h b/src/regress/lib/libc/asr/bin/common.h index 87df4ae4a2..6a6b90a34f 100644 --- a/src/regress/lib/libc/asr/bin/common.h +++ b/src/regress/lib/libc/asr/bin/common.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: common.h,v 1.1.1.1 2012/07/13 17:49:53 eric Exp $ */ | 1 | /* $OpenBSD: common.h,v 1.2 2018/12/15 15:16:12 eric Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> | 3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> |
4 | * | 4 | * |
@@ -41,6 +41,8 @@ const char *rcodetostr(uint16_t); | |||
41 | 41 | ||
42 | uint16_t strtotype(const char*); | 42 | uint16_t strtotype(const char*); |
43 | uint16_t strtoclass(const char*); | 43 | uint16_t strtoclass(const char*); |
44 | int strtoresopt(const char*); | ||
45 | void parseresopt(const char*); | ||
44 | 46 | ||
45 | void print_rrsetinfo(struct rrsetinfo *); | 47 | void print_rrsetinfo(struct rrsetinfo *); |
46 | void print_addrinfo(struct addrinfo *); | 48 | void print_addrinfo(struct addrinfo *); |
diff --git a/src/regress/lib/libc/asr/bin/getaddrinfo.c b/src/regress/lib/libc/asr/bin/getaddrinfo.c index 7b8674aea9..6605a00c1b 100644 --- a/src/regress/lib/libc/asr/bin/getaddrinfo.c +++ b/src/regress/lib/libc/asr/bin/getaddrinfo.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: getaddrinfo.c,v 1.2 2013/03/28 09:36:03 eric Exp $ */ | 1 | /* $OpenBSD: getaddrinfo.c,v 1.3 2018/12/15 15:16:12 eric Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> | 3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> |
4 | * | 4 | * |
@@ -48,7 +48,7 @@ main(int argc, char *argv[]) | |||
48 | 48 | ||
49 | memset(&hints, 0, sizeof hints); | 49 | memset(&hints, 0, sizeof hints); |
50 | 50 | ||
51 | while((ch = getopt(argc, argv, "CFHPSef:p:s:t:")) != -1) { | 51 | while((ch = getopt(argc, argv, "CFHPR:Sef:p:s:t:")) != -1) { |
52 | switch(ch) { | 52 | switch(ch) { |
53 | case 'C': | 53 | case 'C': |
54 | hints.ai_flags |= AI_CANONNAME; | 54 | hints.ai_flags |= AI_CANONNAME; |
@@ -62,6 +62,9 @@ main(int argc, char *argv[]) | |||
62 | case 'P': | 62 | case 'P': |
63 | hints.ai_flags |= AI_PASSIVE; | 63 | hints.ai_flags |= AI_PASSIVE; |
64 | break; | 64 | break; |
65 | case 'R': | ||
66 | parseresopt(optarg); | ||
67 | break; | ||
65 | case 'S': | 68 | case 'S': |
66 | hints.ai_flags |= AI_NUMERICSERV; | 69 | hints.ai_flags |= AI_NUMERICSERV; |
67 | break; | 70 | break; |
diff --git a/src/regress/lib/libc/asr/bin/gethostnamadr.c b/src/regress/lib/libc/asr/bin/gethostnamadr.c index b1b3e331a7..9cdf7ed448 100644 --- a/src/regress/lib/libc/asr/bin/gethostnamadr.c +++ b/src/regress/lib/libc/asr/bin/gethostnamadr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: gethostnamadr.c,v 1.2 2012/07/29 19:51:36 eric Exp $ */ | 1 | /* $OpenBSD: gethostnamadr.c,v 1.3 2018/12/15 15:16:12 eric Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> | 3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> |
4 | * | 4 | * |
@@ -47,7 +47,7 @@ main(int argc, char *argv[]) | |||
47 | int addrlen; | 47 | int addrlen; |
48 | 48 | ||
49 | aflag = 0; | 49 | aflag = 0; |
50 | while((ch = getopt(argc, argv, "46ae")) != -1) { | 50 | while((ch = getopt(argc, argv, "46R:ae")) != -1) { |
51 | switch(ch) { | 51 | switch(ch) { |
52 | case '4': | 52 | case '4': |
53 | family = AF_INET; | 53 | family = AF_INET; |
@@ -55,6 +55,9 @@ main(int argc, char *argv[]) | |||
55 | case '6': | 55 | case '6': |
56 | family = AF_INET6; | 56 | family = AF_INET6; |
57 | break; | 57 | break; |
58 | case 'R': | ||
59 | parseresopt(optarg); | ||
60 | break; | ||
58 | case 'a': | 61 | case 'a': |
59 | aflag = 1; | 62 | aflag = 1; |
60 | break; | 63 | break; |
diff --git a/src/regress/lib/libc/asr/bin/getnameinfo.c b/src/regress/lib/libc/asr/bin/getnameinfo.c index 8702937a47..bd0fbe224f 100644 --- a/src/regress/lib/libc/asr/bin/getnameinfo.c +++ b/src/regress/lib/libc/asr/bin/getnameinfo.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: getnameinfo.c,v 1.1.1.1 2012/07/13 17:49:54 eric Exp $ */ | 1 | /* $OpenBSD: getnameinfo.c,v 1.2 2018/12/15 15:16:12 eric Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> | 3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> |
4 | * | 4 | * |
@@ -45,7 +45,7 @@ main(int argc, char *argv[]) | |||
45 | 45 | ||
46 | sa = (struct sockaddr*)&ss; | 46 | sa = (struct sockaddr*)&ss; |
47 | 47 | ||
48 | while((ch = getopt(argc, argv, "DFHNSaep:")) != -1) { | 48 | while((ch = getopt(argc, argv, "DFHNR:Saep:")) != -1) { |
49 | switch(ch) { | 49 | switch(ch) { |
50 | case 'D': | 50 | case 'D': |
51 | flags |= NI_DGRAM; | 51 | flags |= NI_DGRAM; |
@@ -59,6 +59,9 @@ main(int argc, char *argv[]) | |||
59 | case 'N': | 59 | case 'N': |
60 | flags |= NI_NAMEREQD; | 60 | flags |= NI_NAMEREQD; |
61 | break; | 61 | break; |
62 | case 'R': | ||
63 | parseresopt(optarg); | ||
64 | break; | ||
62 | case 'S': | 65 | case 'S': |
63 | flags |= NI_NUMERICSERV; | 66 | flags |= NI_NUMERICSERV; |
64 | break; | 67 | break; |
diff --git a/src/regress/lib/libc/asr/bin/getnetnamadr.c b/src/regress/lib/libc/asr/bin/getnetnamadr.c index 4b7414264b..e615e8663f 100644 --- a/src/regress/lib/libc/asr/bin/getnetnamadr.c +++ b/src/regress/lib/libc/asr/bin/getnetnamadr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: getnetnamadr.c,v 1.1.1.1 2012/07/13 17:49:54 eric Exp $ */ | 1 | /* $OpenBSD: getnetnamadr.c,v 1.2 2018/12/15 15:16:12 eric Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> | 3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> |
4 | * | 4 | * |
@@ -44,8 +44,11 @@ main(int argc, char *argv[]) | |||
44 | struct netent *n; | 44 | struct netent *n; |
45 | char *host; | 45 | char *host; |
46 | 46 | ||
47 | while((ch = getopt(argc, argv, "en")) != -1) { | 47 | while((ch = getopt(argc, argv, "R:en")) != -1) { |
48 | switch(ch) { | 48 | switch(ch) { |
49 | case 'R': | ||
50 | parseresopt(optarg); | ||
51 | break; | ||
49 | case 'e': | 52 | case 'e': |
50 | long_err += 1; | 53 | long_err += 1; |
51 | break; | 54 | break; |
diff --git a/src/regress/lib/libc/asr/bin/getrrsetbyname.c b/src/regress/lib/libc/asr/bin/getrrsetbyname.c index 4a5aa57209..8f48501a3f 100644 --- a/src/regress/lib/libc/asr/bin/getrrsetbyname.c +++ b/src/regress/lib/libc/asr/bin/getrrsetbyname.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: getrrsetbyname.c,v 1.1.1.1 2012/07/13 17:49:54 eric Exp $ */ | 1 | /* $OpenBSD: getrrsetbyname.c,v 1.2 2018/12/15 15:16:12 eric Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> | 3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> |
4 | * | 4 | * |
@@ -48,8 +48,11 @@ main(int argc, char *argv[]) | |||
48 | char *host; | 48 | char *host; |
49 | struct rrsetinfo *rrset; | 49 | struct rrsetinfo *rrset; |
50 | 50 | ||
51 | while((ch = getopt(argc, argv, "et:")) != -1) { | 51 | while((ch = getopt(argc, argv, "R:et:")) != -1) { |
52 | switch(ch) { | 52 | switch(ch) { |
53 | case 'R': | ||
54 | parseresopt(optarg); | ||
55 | break; | ||
53 | case 'e': | 56 | case 'e': |
54 | long_err += 1; | 57 | long_err += 1; |
55 | break; | 58 | break; |
diff --git a/src/regress/lib/libc/asr/bin/res_mkquery.c b/src/regress/lib/libc/asr/bin/res_mkquery.c index a52023c5c0..b32f471cdf 100644 --- a/src/regress/lib/libc/asr/bin/res_mkquery.c +++ b/src/regress/lib/libc/asr/bin/res_mkquery.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: res_mkquery.c,v 1.1.1.1 2012/07/13 17:49:53 eric Exp $ */ | 1 | /* $OpenBSD: res_mkquery.c,v 1.2 2018/12/15 15:16:12 eric Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> | 3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> |
4 | * | 4 | * |
@@ -59,8 +59,11 @@ main(int argc, char *argv[]) | |||
59 | uint16_t type = T_A; | 59 | uint16_t type = T_A; |
60 | char buf[1024], *host; | 60 | char buf[1024], *host; |
61 | 61 | ||
62 | while((ch = getopt(argc, argv, "et:")) != -1) { | 62 | while((ch = getopt(argc, argv, "R:et:")) != -1) { |
63 | switch(ch) { | 63 | switch(ch) { |
64 | case 'R': | ||
65 | parseresopt(optarg); | ||
66 | break; | ||
64 | case 'e': | 67 | case 'e': |
65 | long_err += 1; | 68 | long_err += 1; |
66 | break; | 69 | break; |
diff --git a/src/regress/lib/libc/asr/bin/res_query.c b/src/regress/lib/libc/asr/bin/res_query.c index 3565eeebed..ca95a89a7c 100644 --- a/src/regress/lib/libc/asr/bin/res_query.c +++ b/src/regress/lib/libc/asr/bin/res_query.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: res_query.c,v 1.2 2017/03/09 07:56:38 eric Exp $ */ | 1 | /* $OpenBSD: res_query.c,v 1.3 2018/12/15 15:16:12 eric Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> | 3 | * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> |
4 | * | 4 | * |
@@ -72,8 +72,11 @@ main(int argc, char *argv[]) | |||
72 | dflag = 0; | 72 | dflag = 0; |
73 | qflag = 0; | 73 | qflag = 0; |
74 | 74 | ||
75 | while((ch = getopt(argc, argv, "deqt:")) != -1) { | 75 | while((ch = getopt(argc, argv, "R:deqt:")) != -1) { |
76 | switch(ch) { | 76 | switch(ch) { |
77 | case 'R': | ||
78 | parseresopt(optarg); | ||
79 | break; | ||
77 | case 'd': | 80 | case 'd': |
78 | dflag = 1; | 81 | dflag = 1; |
79 | break; | 82 | break; |