]> jfr.im git - solanum.git/blobdiff - authd/reslib.c
authd: reslib: hook in windows DNS logic
[solanum.git] / authd / reslib.c
index 248f753d1dbc19c8a63231f4ee5fe99a7fdbd8e1..c5f1363930c684027aa310292141019a424053ed 100644 (file)
@@ -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()
  *