aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin
diff options
context:
space:
mode:
authorAnton Lavrentiev via Cygwin-patches <cygwin-patches@cygwin.com>2022-01-18 11:09:33 -0500
committerCorinna Vinschen <corinna@vinschen.de>2022-01-19 08:05:18 +0100
commitfa279a583dd961497a378758ebbe4ca78f085282 (patch)
treeb6b2ca73a05f40b5d43c1d7265388081d919a85c /winsup/cygwin
parent84ff8d9477fa9d2a9770c5c812df0ba7ab282711 (diff)
downloadnewlib-fa279a583dd961497a378758ebbe4ca78f085282.zip
newlib-fa279a583dd961497a378758ebbe4ca78f085282.tar.gz
newlib-fa279a583dd961497a378758ebbe4ca78f085282.tar.bz2
Cygwin: resolver: Process options forward (not backwards)
Also, make sure the debug setting propagates to the parser of the remainder of /etc/resolv.conf
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/libc/minires.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/winsup/cygwin/libc/minires.c b/winsup/cygwin/libc/minires.c
index 0cf9efd..fdc6087 100644
--- a/winsup/cygwin/libc/minires.c
+++ b/winsup/cygwin/libc/minires.c
@@ -86,12 +86,12 @@ Read options
***********************************************************************/
-static void get_options(res_state statp, int i, char **words)
+static void get_options(res_state statp, int n, char **words)
{
char *ptr;
- int value;
+ int i, value;
- while (i-- > 0) {
+ for (i = 0; i < n; ++i) {
if (!strcasecmp("debug", words[i])) {
statp->options |= RES_DEBUG;
DPRINTF(statp->options & RES_DEBUG, "%s: 1\n", words[i]);
@@ -208,8 +208,10 @@ static void get_resolv(res_state statp)
}
}
/* Options line */
- else if (!strncasecmp("options", words[0], sizes[0]))
+ else if (!strncasecmp("options", words[0], sizes[0])) {
get_options(statp, i - 1, &words[1]);
+ debug = statp->options & RES_DEBUG;
+ }
}
}
fclose(fd);