X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fdns.cpp;h=13a80311ad75aa555b9d0d9051c7c5065c6305d7;hb=406ab09f22f46a6cee5559e96f0325768188ffa4;hp=c3d7cd786a270e769f25a197cb45ddf5c7ea517a;hpb=e0e0338b6b7cee98540bb28a7f1c90e84bb0c5db;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/dns.cpp b/src/dns.cpp index c3d7cd786..13a80311a 100644 --- a/src/dns.cpp +++ b/src/dns.cpp @@ -95,6 +95,8 @@ struct s_header { /* DNS query header */ 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; @@ -161,7 +163,7 @@ void DNS::dns_init() { /* on first call only: populates servers4 struct with up 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) @@ -186,12 +188,8 @@ void DNS::dns_init_2(const char* dnsserver) { /* populates servers4 struct with int i; in_addr addr4; char buf[1024]; - if (initdone == 1) - return; 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)); @@ -684,6 +682,11 @@ DNS::DNS(std::string dnsserver) dns_init_2(dnsserver.c_str()); } +void DNS::SetNS(std::string dnsserver) +{ + dns_init_2(dnsserver.c_str()); +} + DNS::~DNS() { }