This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to deal with DHCP and DNS(-tools)?

On Mon, Jan 03, 2005 at 09:52:24PM +0100, Olaf F?llinger wrote:
> Hi,
> on my notebook with WinXP I'm using cygwin day by day. I receive the ip
> configuration by dhcp from windows. While most of the cygwins tools have
> no problem the dns tools(host, dig,...) seems to insist on a working
> /etc/resolv.conf. Does anyone have a automatic solution for updating
> this file with the current settings?
You could write a program using minires. It should call
res_init to initialize the _res structure and then
print the fields to /etc/resolv.conf, as sketched below.

Note that if /etc/resolv.conf exists, then minires will use it
in preference to the Windows values. Thus /etc/resolv must be
renamed in your program.

Also /etc/resolv.conf will affect applications using minires.
On Win2000 and XP they will call the nameservers specified in
/etc/resolv.conf instead of using the native Windows resolver,
except if the "options" line in /etc/resolv.conf contains the
"osquery" keyword.


#include <stdio.h>
#include <netinet/in.h>
#include <netdb.h>
#include <resolv.h>

   FILE *fd;
   int i;

   rename (_PATH_RESCONF, _PATH_RESCONF ".bak");
   fd = fopen (_PATH_RESCONF, "wb");	
   _res.options |= RES_DEBUG; So you can see what happens
   res_init ();
   /* Print domain name */
   if (_res.defdname[0])
     fprintf (fd, "domain %s", _res.defdname);
   /* Print search list */
   for (i=0; _res.dnsrch[i]; i++)
      fprintf(fd, ..., _res.dnsrch[i]);
   /* Print name server addresses */
   for (i=0; i < _res.nscount; i++)
     fprintf (fd, ..., _res.nsaddr_list[i]...);

Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]