diff options
author | wiz <wiz> | 2005-02-01 17:02:00 +0000 |
---|---|---|
committer | wiz <wiz> | 2005-02-01 17:02:00 +0000 |
commit | 5350d6daa260d41180ac32ed48a3358ab1f3d904 (patch) | |
tree | 4fc5665e102dabf1ee7b043b97949054ff46c4ae /net/mtr/patches | |
parent | 25e8a07421481c1d51d4b8f13a083950103e940f (diff) | |
download | pkgsrc-5350d6daa260d41180ac32ed48a3358ab1f3d904.tar.gz |
Add patch based on christos' etherape patch-ab to make name lookups work
on -current. Bump PKGREVISION.
Diffstat (limited to 'net/mtr/patches')
-rw-r--r-- | net/mtr/patches/patch-ab | 83 |
1 files changed, 76 insertions, 7 deletions
diff --git a/net/mtr/patches/patch-ab b/net/mtr/patches/patch-ab index 25bf03dc6a4..f88905302bd 100644 --- a/net/mtr/patches/patch-ab +++ b/net/mtr/patches/patch-ab @@ -1,12 +1,11 @@ -$NetBSD: patch-ab,v 1.7 2005/02/01 16:53:58 wiz Exp $ +$NetBSD: patch-ab,v 1.8 2005/02/01 17:02:00 wiz Exp $ ---- dns.c.orig Thu Aug 26 00:56:53 2004 -+++ dns.c Sun Jan 9 16:06:08 2005 -@@ -32,9 +32,18 @@ +--- dns.c.orig 2004-08-26 09:56:53.000000000 +0200 ++++ dns.c +@@ -32,9 +32,17 @@ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> -+ +#ifdef __APPLE__ +#include <arpa/nameser8_compat.h> +#else @@ -21,7 +20,45 @@ $NetBSD: patch-ab,v 1.7 2005/02/01 16:53:58 wiz Exp $ #include <unistd.h> #include <fcntl.h> #include <ctype.h> -@@ -814,9 +823,9 @@ +@@ -282,6 +290,17 @@ char nullstring[] = ""; + + int use_dns = 1; + ++#ifdef res_ninit ++#define RES_INIT() res_ninit(&myres); ++#define RES_MKQUERY(a, b, c, d, e, f, g, h, i) \ ++ res_nmkquery(&myres, a, b, c, d, e, f, g, h, i) ++struct __res_state myres; ++#else ++#define RES_INIT() res_init(); ++#define RES_MKQUERY(a, b, c, d, e, f, g, h, i) \ ++ res_mkquery(a, b, c, d, e, f, g, h, i) ++#define myres _res ++#endif + + /* Code */ + #ifdef CorruptCheck +@@ -448,14 +467,14 @@ void dns_open(void) + { + int option,i; + +- res_init(); +- if (!_res.nscount) { ++ RES_INIT(); ++ if (!myres.nscount) { + fprintf(stderr,"No nameservers defined.\n"); + exit(-1); + } +- _res.options|= RES_RECURSE | RES_DEFNAMES | RES_DNSRCH; +- for (i = 0;i < _res.nscount;i++) +- _res.nsaddr_list[i].sin_family = AF_INET; ++ myres.options|= RES_RECURSE | RES_DEFNAMES | RES_DNSRCH; ++ for (i = 0;i < myres.nscount;i++) ++ myres.nsaddr_list[i].sin_family = AF_INET; + resfd = socket(AF_INET, SOCK_DGRAM, 0); + if (resfd == -1) { + fprintf(stderr,"Unable to allocate socket for nameserver communication: %s\n", +@@ -814,17 +833,17 @@ void dorequest(char *s,int type,word id) { packetheader *hp; int r,i; @@ -29,7 +66,39 @@ $NetBSD: patch-ab,v 1.7 2005/02/01 16:53:58 wiz Exp $ + unsigned char buf[MaxPacketsize]; - r = res_mkquery(QUERY,s,C_IN,type,NULL,0,NULL,(unsigned char*)buf,MaxPacketsize); -+ r = res_mkquery(QUERY,s,C_IN,type,NULL,0,NULL,buf,MaxPacketsize); ++ r = RES_MKQUERY(QUERY,s,C_IN,type,NULL,0,NULL,(unsigned char*)buf,MaxPacketsize); if (r == -1) { restell("Resolver error: Query too large."); return; + } + hp = (packetheader *)buf; + hp->id = id; /* htons() deliberately left out (redundant) */ +- for (i = 0;i < _res.nscount;i++) +- (void)sendto(resfd,buf,r,0,(struct sockaddr *)&_res.nsaddr_list[i], ++ for (i = 0;i < myres.nscount;i++) ++ (void)sendto(resfd,buf,r,0,(struct sockaddr *)&myres.nsaddr_list[i], + sizeof(struct sockaddr)); + } + +@@ -1161,15 +1180,15 @@ void dns_ack(void) + if (r > 0) { + /* Check to see if this server is actually one we sent to */ + if (from.sin_addr.s_addr == localhost) { +- for (i = 0;i < _res.nscount;i++) +- if ((_res.nsaddr_list[i].sin_addr.s_addr == from.sin_addr.s_addr) || +- (!_res.nsaddr_list[i].sin_addr.s_addr)) /* 0.0.0.0 replies as 127.0.0.1 */ ++ for (i = 0;i < myres.nscount;i++) ++ if ((myres.nsaddr_list[i].sin_addr.s_addr == from.sin_addr.s_addr) || ++ (!myres.nsaddr_list[i].sin_addr.s_addr)) /* 0.0.0.0 replies as 127.0.0.1 */ + break; + } else +- for (i = 0;i < _res.nscount;i++) +- if (_res.nsaddr_list[i].sin_addr.s_addr == from.sin_addr.s_addr) ++ for (i = 0;i < myres.nscount;i++) ++ if (myres.nsaddr_list[i].sin_addr.s_addr == from.sin_addr.s_addr) + break; +- if (i == _res.nscount) { ++ if (i == myres.nscount) { + sprintf(tempstring,"Resolver error: Received reply from unknown source: %s", + inet_ntoa(from.sin_addr)); + restell(tempstring); |