]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Author: Henrik Nordstrom <henrik@henriknordstrom.net>
authorAmos Jeffries <amosjeffries@squid-cache.org>
Sat, 19 Apr 2008 02:09:36 +0000 (20:09 -0600)
committerAmos Jeffries <amosjeffries@squid-cache.org>
Sat, 19 Apr 2008 02:09:36 +0000 (20:09 -0600)
Add support for the resolv.conf domain directive, and also automatically derived default domain

This patch adds the domain resolv.conf directive, similar to search but
only accepting a single domain.

In addition it adds support for automatically deriving the domain from
the fully qualified hostname.

src/dns_internal.cc

index a04aa6f39413bec1b624b92267857bc9336ea71c..a561f280b32abdf6f87a66720c06e02700f7b539 100644 (file)
@@ -288,7 +288,7 @@ idnsParseResolvConf(void)
 {
     FILE *fp;
     char buf[RESOLV_BUFSZ];
-    char *t;
+    const char *t;
     fp = fopen(_PATH_RESCONF, "r");
 
     if (fp == NULL) {
@@ -315,7 +315,18 @@ idnsParseResolvConf(void)
             debugs(78, 1, "Adding nameserver " << t << " from " << _PATH_RESCONF);
 
             idnsAddNameserver(t);
+        } else if (strcasecmp(t, "domain") == 0) {
+           idnsFreeSearchpath();
+           t = strtok(NULL, w_space);
+
+           if (NULL == t)
+               continue;
+
+           debugs(78, 1, "Adding domain " << t << " from " << _PATH_RESCONF);
+
+           idnsAddPathComponent(t);
         } else if (strcasecmp(t, "search") == 0) {
+           idnsFreeSearchpath();
             while (NULL != t) {
                 t = strtok(NULL, w_space);
 
@@ -344,6 +355,11 @@ idnsParseResolvConf(void)
             }
         }
     }
+    if (npc == 0 && (t = getMyHostname())) {
+       t = strchr(t, '.');
+       if (t)
+           idnsAddPathComponent(t+1);
+    }
 
     fclose(fp);
 }