|
|
@@ -1,27 +1,27 @@
|
|
|
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));
|
|
|
+--- dnstracer.c.orig 2008-02-09 13:47:37 +0100
|
|
|
++++ dnstracer.c 2008-02-10 10:08:43 +0100
|
|
|
+@@ -689,7 +689,11 @@
|
|
|
}
|
|
|
|
|
|
+ void
|
|
|
+#ifdef NOIPV6
|
|
|
-+void dump_data(struct sockaddr_in *dest4,void *dest6,struct dnssession *session) {
|
|
|
++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) {
|
|
|
+ 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 @@
|
|
|
+@@ -810,6 +814,7 @@
|
|
|
exit(1);
|
|
|
}
|
|
|
|
|
|
+#if defined(AI_NUMERICHOST) && defined(EAI_NODATA)
|
|
|
- if (global_source_address!=NULL) {
|
|
|
- struct addrinfo hints,*src_res;
|
|
|
+ if (global_source_address != NULL) {
|
|
|
+ struct addrinfo hints, *src_res;
|
|
|
int error;
|
|
|
-@@ -784,6 +789,7 @@
|
|
|
+@@ -836,6 +841,7 @@
|
|
|
exit(1);
|
|
|
}
|
|
|
}
|
|
|
@@ -29,7 +29,7 @@ Index: dnstracer.c
|
|
|
|
|
|
return s;
|
|
|
}
|
|
|
-@@ -1048,6 +1054,25 @@
|
|
|
+@@ -1123,6 +1129,25 @@
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
@@ -55,49 +55,28 @@ Index: dnstracer.c
|
|
|
//
|
|
|
// The core of this program
|
|
|
//
|
|
|
-@@ -1123,7 +1148,11 @@
|
|
|
+@@ -1198,7 +1223,11 @@
|
|
|
// don't have to worry about packets received from previous sessions.
|
|
|
//
|
|
|
- session=(struct dnssession *)calloc(1,sizeof(struct dnssession));
|
|
|
+ session = (struct dnssession *)calloc(1, sizeof(struct dnssession));
|
|
|
+#ifdef NOIPV6
|
|
|
-+ session->socket=create_socket(AF_INET);
|
|
|
++ session->socket = create_socket(AF_INET);
|
|
|
+#else
|
|
|
- session->socket=create_socket(ipv6?AF_INET6:AF_INET);
|
|
|
+ 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 @@
|
|
|
+ session->ipv6 = ipv6;
|
|
|
+ session->server = strdup(server_ip);
|
|
|
+ session->host = strdup(host);
|
|
|
+@@ -1377,8 +1406,12 @@
|
|
|
struct hostent *h;
|
|
|
- char **addr_list=NULL;
|
|
|
+ char **addr_list = NULL;
|
|
|
|
|
|
+#ifndef NOIPV6
|
|
|
- h=gethostbyname2(nextserver_name,ip==0?AF_INET:AF_INET6);
|
|
|
+ h = gethostbyname2(nextserver_name,
|
|
|
+ ip == 0 ? AF_INET : AF_INET6);
|
|
|
+#else
|
|
|
-+ h=gethostbyname(nextserver_name);
|
|
|
++ h = gethostbyname(nextserver_name);
|
|
|
+#endif
|
|
|
- if (h==NULL) continue;
|
|
|
+ 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;
|
|
|
- }
|