possible patch for implementing split DNS
Julian Elischer
julian at elischer.org
Fri Aug 25 22:08:14 UTC 2006
Julian Elischer wrote:
> 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?
oops
patch had a bug..
here's the fixed version (permission checks were screwed up)
%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 15:05:59 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 */
More information about the freebsd-net
mailing list