/*
- * $Id: dns.cc,v 1.54 1998/02/07 08:13:36 wessels Exp $
+ * $Id: dns.cc,v 1.55 1998/02/18 00:34:36 wessels Exp $
*
* DEBUG: section 34 Dnsserver interface
* AUTHOR: Harvest Derived
int wfd;
LOCAL_ARRAY(char, fd_note_buf, FD_DESC_SZ);
char *s;
- char *args[3];
+ char *args[64];
+ int nargs = 0;
+ wordlist *w;
dnsFreeMemory();
dns_child_table = xcalloc(N, sizeof(dnsserver_t *));
NDnsServersAlloc = 0;
- args[0] = "(dnsserver)";
- args[1] = NULL;
- args[2] = NULL;
+ args[nargs++] = "(dnsserver)";
if (Config.onoff.res_defnames)
- args[1] = "-D";
+ args[nargs++] = "-D";
+ if (Config.dns_nameservers != NULL) {
+ args[nargs++] = "-s";
+ for (w = Config.dns_nameservers; w != NULL; w = w->next) {
+ if (nargs > 60)
+ break;
+ args[nargs++] = w->key;
+ }
+ }
+ args[nargs++] = NULL;
for (k = 0; k < N; k++) {
dns_child_table[k] = xcalloc(1, sizeof(dnsserver_t));
cbdataAdd(dns_child_table[k], MEM_NONE);
/*
- * $Id: dnsserver.cc,v 1.45 1998/02/17 18:59:36 wessels Exp $
+ * $Id: dnsserver.cc,v 1.46 1998/02/18 00:34:37 wessels Exp $
*
* DEBUG: section 0 DNS Resolver
* AUTHOR: Harvest Derived
int alias_count = 0;
int i;
int c;
+ int opt_s = 0;
+ extern char *optarg;
safe_inet_addr("255.255.255.255", &no_addr);
#endif
#endif
- while ((c = getopt(argc, argv, "vhdD")) != -1) {
+ while ((c = getopt(argc, argv, "Ddhs:v")) != -1) {
switch (c) {
- case 'v':
- printf("dnsserver version %s\n", SQUID_VERSION);
- exit(0);
- break;
- case 'd':
- snprintf(buf, 256, "dnsserver.%d.log", (int) getpid());
- logfile = fopen(buf, "a");
- do_debug++;
- if (!logfile)
- fprintf(stderr, "Could not open dnsserver's log file\n");
- break;
case 'D':
#ifdef RES_DEFNAMES
_res.options |= RES_DEFNAMES;
_res.options |= RES_DNSRCH;
#endif
break;
+ case 'd':
+ snprintf(buf, 256, "dnsserver.%d.log", (int) getpid());
+ logfile = fopen(buf, "a");
+ do_debug++;
+ if (!logfile)
+ fprintf(stderr, "Could not open dnsserver's log file\n");
+ break;
case 'h':
+ fprintf(stderr, "usage: dnsserver -hvd\n");
+ exit(1);
+ break;
+ case 's':
+ if (opt_s == 0) {
+ _res.nscount = 0;
+ _res.options |= RES_INIT;
+ opt_s = 1;
+ }
+ safe_inet_addr(optarg, &_res.nsaddr_list[_res.nscount++].sin_addr);
+ break;
+ case 'v':
+ printf("dnsserver version %s\n", SQUID_VERSION);
+ exit(0);
+ break;
default:
fprintf(stderr, "usage: dnsserver -hvd\n");
exit(1);