diff options
author | christos <christos@pkgsrc.org> | 2004-12-20 23:24:02 +0000 |
---|---|---|
committer | christos <christos@pkgsrc.org> | 2004-12-20 23:24:02 +0000 |
commit | 576e388b0db8cfb63447be6bbdce8bd452f7223c (patch) | |
tree | a03e3bede7f9eae24822b06d66118d1718f113a5 /net/etherape | |
parent | 04aec8bd31805c87a42584c0689099c5824c26ca (diff) | |
download | pkgsrc-576e388b0db8cfb63447be6bbdce8bd452f7223c.tar.gz |
PR/27224: Daniel Carosone: Etherape is multi-threaded and uses _res. Fixed to
use the new resolver functions.
Diffstat (limited to 'net/etherape')
-rw-r--r-- | net/etherape/distinfo | 3 | ||||
-rw-r--r-- | net/etherape/patches/patch-ab | 85 |
2 files changed, 87 insertions, 1 deletions
diff --git a/net/etherape/distinfo b/net/etherape/distinfo index 4481a718e34..0fbcda22d85 100644 --- a/net/etherape/distinfo +++ b/net/etherape/distinfo @@ -1,5 +1,6 @@ -$NetBSD: distinfo,v 1.3 2004/11/22 15:27:53 adam Exp $ +$NetBSD: distinfo,v 1.4 2004/12/20 23:24:02 christos Exp $ SHA1 (etherape-0.9.1.tar.gz) = d9eb267e1ff5992bf120f8bbefc974660a203909 Size (etherape-0.9.1.tar.gz) = 447092 bytes SHA1 (patch-aa) = e6b41ead7de0a0ce5f293f742e3e79cfe2d65021 +SHA1 (patch-ab) = 36ba395ccd63348e16ac4e6fff724af17fa12082 diff --git a/net/etherape/patches/patch-ab b/net/etherape/patches/patch-ab new file mode 100644 index 00000000000..6e110287be5 --- /dev/null +++ b/net/etherape/patches/patch-ab @@ -0,0 +1,85 @@ +$NetBSD: patch-ab,v 1.1 2004/12/20 23:24:02 christos Exp $ + +--- src/dns.c.orig 2003-04-06 09:45:41.000000000 -0400 ++++ src/dns.c 2004-12-20 18:15:45.000000000 -0500 +@@ -60,6 +60,17 @@ + #define strerror(errno) (((errno) >= 0 && (errno) < sys_nerr) ? sys_errlist[errno] : "unlisted error") + #endif + ++#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 myres _res ++#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) ++#endif + + + /* Hmm, it seems Irix requires this */ +@@ -432,15 +443,15 @@ + 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) + { +@@ -755,7 +766,7 @@ + int r, i; + int buf[(MaxPacketsize / sizeof (int)) + 1]; + +- r = res_mkquery (QUERY, s, C_IN, type, NULL, 0, NULL, (u_char *) buf, ++ r = RES_MKQUERY (QUERY, s, C_IN, type, NULL, 0, NULL, (u_char *) buf, + MaxPacketsize); + if (r == -1) + { +@@ -764,9 +775,9 @@ + } + hp = (packetheader *) buf; + hp->id = id; /* htons() deliberately left out (redundant) */ +- for (i = 0; i < _res.nscount; i++) ++ for (i = 0; i < myres.nscount; i++) + (void) sendto (resfd, buf, r, 0, +- (struct sockaddr *) &_res.nsaddr_list[i], ++ (struct sockaddr *) &myres.nsaddr_list[i], + sizeof (struct sockaddr)); + } + +@@ -1279,15 +1290,15 @@ + /* 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) + { + snprintf (tempstring, sizeof (tempstring), + "Resolver error: Received reply from unknown source: %s", |