I need some processes to look elsewhere for DNS information from where the rest
of the system looks.. This patch seems to me a simple solution.
We over-ride where the resolver looks for resolv.conf using an environment variable. This would allow me to reset this to an application specific config file that
specifies a different server.

Anyone got better ways fo doing this?



%diff -u ./lib/libc/net/res_init.c /tmp/res_init.c
--- ./lib/libc/net/res_init.c   Thu Sep  9 10:42:18 2004
+++ /tmp/res_init.c     Fri Aug 25 14:31:41 2006
@@ -154,6 +154,7 @@
       int nserv = 0;    /* number of nameserver records read from file */
       int haveenv = 0;
       int havesearch = 0;
+       char *conf_path;
#ifdef RESOLVSORT
       int nsort = 0;
       char *net;
@@ -262,7 +263,10 @@
       (line[sizeof(name) - 1] == ' ' || \
        line[sizeof(name) - 1] == '\t'))

-       if ((fp = fopen(_PATH_RESCONF, "r")) != NULL) {
+       if (issetugid() == 0 && (res_path = getenv("RESOLV_CONF")) != NULL)
+               res_path = _PATH_RESCONF;
+
+       if ((fp = fopen(res_path, "r")) != NULL) {
           /* read the config file */
           while (fgets(buf, sizeof(buf), fp) != NULL) {
               /* skip comments */
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to