]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Add support for the resolv.conf domain directive, and also automatically derived...
authorHenrik Nordstrom <henrik@henriknordstrom.net>
Wed, 16 Apr 2008 00:32:34 +0000 (02:32 +0200)
committerHenrik Nordstrom <henrik@henriknordstrom.net>
Wed, 16 Apr 2008 00:32:34 +0000 (02:32 +0200)
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 3aed082c3094e181f3043ca0f7e15397cd55dcdc..ae2c50af09627adcdb30764413250181403093e0 100644 (file)
@@ -290,7 +290,7 @@ idnsParseResolvConf(void)
 {
     FILE *fp;
     char buf[RESOLV_BUFSZ];
-    char *t;
+    const char *t;
     fp = fopen(_PATH_RESCONF, "r");
 
     if (fp == NULL) {
@@ -317,7 +317,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);
 
@@ -346,6 +357,11 @@ idnsParseResolvConf(void)
             }
         }
     }
+    if (npc == 0 && (t = getMyHostname())) {
+       t = strchr(t, '.');
+       if (t)
+           idnsAddPathComponent(t+1);
+    }
 
     fclose(fp);
 }