| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- Index: dnstracer.c
- --- dnstracer.c.orig 2004-07-08 13:17:59.000000000 +0200
- +++ dnstracer.c 2004-10-08 13:46:54.091634581 +0200
- @@ -642,7 +642,11 @@
- get_resource(rr->type,session,rr->data,0));
- }
-
- +#ifdef NOIPV6
- +void dump_data(struct sockaddr_in *dest4,void *dest6,struct dnssession *session) {
- +#else
- void dump_data(struct sockaddr_in *dest4,struct sockaddr_in6 *dest6,struct dnssession *session) {
- +#endif
- struct dnsrr *answerrr;
- struct dnsrr *authorityrr;
- struct dnsrr *additionalrr;
- @@ -758,6 +762,7 @@
- exit(1);
- }
-
- +#if defined(AI_NUMERICHOST) && defined(EAI_NODATA)
- if (global_source_address!=NULL) {
- struct addrinfo hints,*src_res;
- int error;
- @@ -784,6 +789,7 @@
- exit(1);
- }
- }
- +#endif
-
- return s;
- }
- @@ -1048,6 +1054,25 @@
-
- /*****************************************************************************/
-
- +static char *my_strcasestr(const char *s, const char *find)
- +{
- + char c, sc;
- + size_t len;
- +
- + if ((c = *find++) != 0) {
- + c = tolower((unsigned char)c);
- + len = strlen(find);
- + do {
- + do {
- + if ((sc = *s++) == 0)
- + return (NULL);
- + } while ((char)tolower((unsigned char)sc) != c);
- + } while (strncasecmp(s, find, len) != 0);
- + s--;
- + }
- + return ((char *)s);
- +}
- +
- //
- // The core of this program
- //
- @@ -1123,7 +1148,11 @@
- // don't have to worry about packets received from previous sessions.
- //
- session=(struct dnssession *)calloc(1,sizeof(struct dnssession));
- +#ifdef NOIPV6
- + session->socket=create_socket(AF_INET);
- +#else
- session->socket=create_socket(ipv6?AF_INET6:AF_INET);
- +#endif
- session->ipv6=ipv6;
- session->server=strdup(server_ip);
- session->host=strdup(host);
- @@ -1233,7 +1262,7 @@
- }
-
- if (server_authfor!=NULL && strcmp(server_authfor,".")!=0 &&
- - (unsigned char *)strcasestr(rrauth->domainname_string,server_authfor)!=rrauth->domainname_string+strlen(rrauth->domainname_string)-strlen(server_authfor)) {
- + (unsigned char *)my_strcasestr(rrauth->domainname_string,server_authfor)!=rrauth->domainname_string+strlen(rrauth->domainname_string)-strlen(server_authfor)) {
- if (!refersbackwards++)
- printf("Refers backwards ");
- rrauth=rrauth->next;
- @@ -1300,7 +1329,11 @@
- struct hostent *h;
- char **addr_list=NULL;
-
- +#ifndef NOIPV6
- h=gethostbyname2(nextserver_name,ip==0?AF_INET:AF_INET6);
- +#else
- + h=gethostbyname(nextserver_name);
- +#endif
- if (h==NULL) continue;
-
- //
- @@ -1540,8 +1573,12 @@
-
- {
- struct hostent *h;
- +#ifndef NOIPV6
- if (((h=gethostbyname2(server_name,AF_INET6))==NULL) &&
- ((h=gethostbyname2(server_name,AF_INET))==NULL)) {
- +#else
- + if ((h=gethostbyname(server_name))==NULL) {
- +#endif
- fprintf(stderr,"Cannot find IP address for %s\n",server_name);
- return 1;
- }
|