-void dns_close(int fd) { /* close query */
- if (fd == lastcreate) {
- wantclose = 1;
- return;
- }
- close(fd);
- return;
-}
-
-void DNS::dns_init() { /* on first call only: populates servers4 struct with up to DNS_MAX nameserver IP addresses from /etc/resolv.conf */
- FILE *f;
- int i;
- in_addr addr4;
- char buf[1024];
- if (initdone == 1)
- return;
- i4 = 0;
-
- initdone = 1;
- srand((unsigned int) time(NULL));
- memset(servers4,'\0',sizeof(in_addr) * DNS_MAX);
- f = fopen(DNS_CONFIG_FBCK,"r");
- if (f == NULL)
- return;
- while (fgets(buf,1024,f) != NULL) {
- if (strncmp(buf,"nameserver",10) == 0) {
- i = 10;
- while (buf[i] == ' ' || buf[i] == '\t')
- i++;
- if (i4 < DNS_MAX) {
- if (dns_aton4_s(&buf[i],&addr4) != NULL)
- memcpy(&servers4[i4++],&addr4,sizeof(in_addr));
- }
- }
- }
- fclose(f);
-
-}
-
-void DNS::dns_init_2(const char* dnsserver) { /* populates servers4 struct with address from the given parameter */
- FILE *f;
- int i;
- in_addr addr4;
- char buf[1024];
- if (initdone == 1)
- return;
- i4 = 0;
-
- initdone = 1;
- srand((unsigned int) time(NULL));
- memset(servers4,'\0',sizeof(in_addr) * DNS_MAX);
- if (dns_aton4_s(dnsserver,&addr4) != NULL)
- memcpy(&servers4[i4++],&addr4,sizeof(in_addr));
-}
-