- _res.nsaddr.sin_family = AF_INET;
- _res.nsaddr.sin_addr.s_addr = INADDR_ANY;
- _res.defdname[0] = '\0';
- if ((serv = getservbyname(NAMESERVER_SNAME, "tcp")) == NULL)
- return(-1);
- _res.nsaddr.sin_port = (u_short)serv->s_port;
-
- if ((fp = fopen(conffile, "r")) != NULL) {
- while (fgets(buf, sizeof(buf), fp) != NULL) {
- if (!strncmp(buf, "domain", sizeof("domain") - 1)) {
- cp = buf + sizeof("domain") - 1;
- while (*cp == ' ' || *cp == '\t')
- cp++;
- if (*cp == '\0')
- continue;
- (void)strncpy(_res.defdname, cp,
- sizeof(_res.defdname));
- _res.defdname[sizeof(_res.defdname) - 1] = '\0';
- if ((cp = index(_res.defdname, '\n')) != NULL)
- *cp = '\0';
- continue;
- }
- if (!strncmp(buf, "resolver", sizeof("resolver") - 1)) {
- cp = buf + sizeof("resolver") - 1;
- while (*cp == ' ' || *cp == '\t')
- cp++;
- if (*cp == '\0')
- continue;
- _res.nsaddr.sin_addr.s_addr = inet_addr(cp);
- if (_res.nsaddr.sin_addr.s_addr == (unsigned)-1)
- _res.nsaddr.sin_addr.s_addr =
- INADDR_ANY;
- continue;
- }
- }
- (void) fclose(fp);
- }
- if (_res.defdname[0] == 0) {
- if (gethostname(buf, sizeof(_res.defdname)) == -1)
- return(-1);
- if ((cp = index(buf, '.')) == NULL)
- return(-1);
- (void)strcpy(_res.defdname, cp + 1);
- }