unsigned char payload[512]; /* DNS question, populated by dns_build_query_payload() */
};
+extern time_t TIME;
+
void *dns_align(void *inp) {
char *p = (char*)inp;
int offby = ((char *)p - (char *)0) % DNS_ALIGN;
i4 = 0;
initdone = 1;
- srand((unsigned int) time(NULL));
+ srand((unsigned int) TIME);
memset(servers4,'\0',sizeof(in_addr) * DNS_MAX);
f = fopen(DNS_CONFIG_FBCK,"r");
if (f == NULL)
i4 = 0;
initdone = 1;
- srand((unsigned int) time(NULL));
+ srand((unsigned int) TIME);
memset(servers4,'\0',sizeof(in_addr) * DNS_MAX);
if (dns_aton4_s(dnsserver,&addr4) != NULL)
memcpy(&servers4[i4++],&addr4,sizeof(in_addr));
memcpy(&addr4.sin_addr,&servers4[i],sizeof(addr4.sin_addr));
addr4.sin_family = AF_INET;
addr4.sin_port = htons(DNS_PORT);
- sendto(s->fd, payload, l + 12, 0, (sockaddr *) &addr4, sizeof(addr4));
+ if (sendto(s->fd, payload, l + 12, 0, (sockaddr *) &addr4, sizeof(addr4)) == -1)
+ {
+ return -1;
+ }
}
return 0;
{
binip = dns_aton4(ip.c_str());
if (binip == NULL) {
- fprintf(stderr,"invalid IP address.\n");
- return 2;
+ return false;
}
this->fd = dns_getname4(binip);
+ if (this->fd == -1)
+ return false;
+ return true;
}
bool DNS::ForwardLookup(std::string host)