diff -acrN djbdns-1.05/dnscache.c djbdns-1.05-nosortip/dnscache.c *** djbdns-1.05/dnscache.c Mon Feb 12 06:11:45 2001 --- djbdns-1.05-nosortip/dnscache.c Sat Sep 8 10:16:06 2001 *************** *** 435,440 **** --- 435,442 ---- response_hidettl(); if (env_get("FORWARDONLY")) query_forwardonly(); + if (env_get("NOSORTIP")) + query_nosortip(); if (!roots_init()) strerr_die2sys(111,FATAL,"unable to read servers: "); diff -acrN djbdns-1.05/query.c djbdns-1.05-pl1/query.c *** djbdns-1.05/query.c Mon Feb 12 06:11:45 2001 --- djbdns-1.05-pl1/query.c Sat Sep 8 10:19:57 2001 *************** *** 14,25 **** --- 14,31 ---- #include "query.h" static int flagforwardonly = 0; + static int flagnosortip = 0; void query_forwardonly(void) { flagforwardonly = 1; } + void query_nosortip(void) + { + flagnosortip = 1; + } + static void cachegeneric(const char type[2],const char *d,const char *data,unsigned int datalen,uint32 ttl) { unsigned int len; *************** *** 428,434 **** break; if (j == 64) goto SERVFAIL; ! dns_sortip(z->servers[z->level],64); if (z->level) { log_tx(z->name[z->level],DNS_T_A,z->control[z->level],z->servers[z->level],z->level); if (dns_transmit_start(&z->dt,z->servers[z->level],flagforwardonly,z->name[z->level],DNS_T_A,z->localip) == -1) goto DIE; --- 434,444 ---- break; if (j == 64) goto SERVFAIL; ! ! /* patched for NOSORTIP */ ! if (!flagforwardonly || !flagnosortip) ! dns_sortip(z->servers[z->level],64); ! if (z->level) { log_tx(z->name[z->level],DNS_T_A,z->control[z->level],z->servers[z->level],z->level); if (dns_transmit_start(&z->dt,z->servers[z->level],flagforwardonly,z->name[z->level],DNS_T_A,z->localip) == -1) goto DIE; diff -acrN djbdns-1.05/query.h djbdns-1.05-pl1/query.h *** djbdns-1.05/query.h Mon Feb 12 06:11:45 2001 --- djbdns-1.05-pl1/query.h Sat Sep 8 10:16:34 2001 *************** *** 28,32 **** --- 28,33 ---- extern int query_get(struct query *,iopause_fd *,struct taia *); extern void query_forwardonly(void); + extern void query_nosortip(void); #endif