From 4063dc2f62b7aec852f313d5b3d0740c213c1902 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Sun, 20 Mar 2016 03:51:31 -0500 Subject: [PATCH] authd: reslib: hook in windows DNS logic --- authd/reslib.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/authd/reslib.c b/authd/reslib.c index 248f753d..c5f13639 100644 --- a/authd/reslib.c +++ b/authd/reslib.c @@ -131,7 +131,10 @@ static const char digitvalue[256] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /*256*/ }; +#ifndef _WIN32 static int parse_resvconf(void); +#endif + static void add_nameserver(const char *); static const char digits[] = "0123456789"; @@ -158,12 +161,31 @@ int irc_res_init(void) { irc_nscount = 0; +#ifndef _WIN32 parse_resvconf(); +#else + parse_windows_nameservers(); +#endif if (irc_nscount == 0) add_nameserver("127.0.0.1"); return 0; } +#ifdef _WIN32 +static void +parse_windows_resolvers(void) +{ + const char *ns = get_windows_nameservers(); + char *server; + char *p; + char *buf = rb_strdup(ns); + for(server = rb_strtok_r(buf, " ", &p); server != NULL;server = rb_strtok_r(NULL, " ", &p)) + { + add_nameserver(server); + } + rb_free(buf); +} +#else /* parse_resvconf() * * inputs - NONE @@ -229,6 +251,7 @@ parse_resvconf(void) fclose(file); return 0; } +#endif /* add_nameserver() *