diff options
author | agc <agc> | 2003-12-15 17:02:22 +0000 |
---|---|---|
committer | agc <agc> | 2003-12-15 17:02:22 +0000 |
commit | e246fb575bf6b0762444dbf4448ed8e1b86e9a6c (patch) | |
tree | b1471cd849eb3ca7cc8a3ea9eef5ae90e47ac126 /net | |
parent | c6eb483efbfa32ea07703099d28840df0a189da1 (diff) | |
download | pkgsrc-e246fb575bf6b0762444dbf4448ed8e1b86e9a6c.tar.gz |
Apply patch from Geoff C. Wing from PR 22475 to make ipw work properly again
after changes to the ARIN whois response.
Bump PKGREVISION
Diffstat (limited to 'net')
-rw-r--r-- | net/ipw/Makefile | 3 | ||||
-rw-r--r-- | net/ipw/distinfo | 3 | ||||
-rw-r--r-- | net/ipw/patches/patch-ab | 81 |
3 files changed, 85 insertions, 2 deletions
diff --git a/net/ipw/Makefile b/net/ipw/Makefile index 0c078bf6258..a26a36faf89 100644 --- a/net/ipw/Makefile +++ b/net/ipw/Makefile @@ -1,7 +1,8 @@ -# $NetBSD: Makefile,v 1.4 2003/07/17 22:51:16 grant Exp $ +# $NetBSD: Makefile,v 1.5 2003/12/15 17:02:22 agc Exp $ # DISTNAME= ipw-3.3a +PKGREVISION= 1 WRKSRC= ${WRKDIR} CATEGORIES= net MASTER_SITES= ${MASTER_SITE_LOCAL} diff --git a/net/ipw/distinfo b/net/ipw/distinfo index 296e168048a..4a3f7834a58 100644 --- a/net/ipw/distinfo +++ b/net/ipw/distinfo @@ -1,5 +1,6 @@ -$NetBSD: distinfo,v 1.3 2001/06/13 14:37:32 zuntum Exp $ +$NetBSD: distinfo,v 1.4 2003/12/15 17:02:22 agc Exp $ SHA1 (ipw-3.3a.tar.gz) = ca7943d263b9ace3951badeb4189e5aa9c2c8ddd Size (ipw-3.3a.tar.gz) = 17238 bytes SHA1 (patch-aa) = 60cf070bacd1f500ebc666d2947b1153626369b5 +SHA1 (patch-ab) = ff6536717e2ef15e90de61c786d79cb2c59e31c6 diff --git a/net/ipw/patches/patch-ab b/net/ipw/patches/patch-ab new file mode 100644 index 00000000000..f2414119b87 --- /dev/null +++ b/net/ipw/patches/patch-ab @@ -0,0 +1,81 @@ +$NetBSD: patch-ab,v 1.1 2003/12/15 17:02:22 agc Exp $ + +--- ipw.c.orig 1999-03-30 08:04:12.000000000 +0100 ++++ ipw.c 2003-12-15 16:58:12.000000000 +0000 +@@ -782,7 +782,7 @@ + if (!p) + return NULL; + +- for (q = p + rwhois_prefix_len; *q && !isspace (*q); q++) ++ for (q = p + rwhois_prefix_len; *q && !isspace (*q) && *q != ':'; q++) + continue; + srvr_len = q - p; + server = (char *) xmalloc (srvr_len + 1); +@@ -1745,14 +1745,14 @@ + { + static char const ripe1[] = "European Regional Internet Registry/RIPE"; + static char const ripe2[] = "RIPE NCC (NET-RIPE-NCC-"; +- static char const apnic[] = "Asia Pacific Network Information Center"; ++ static char const apnic[] = "Asia Pacific Network Information Centre"; + static char const nomatch[] = "No match"; + static char const updated[] = "Record last updated on "; + static char const hostname[] = "Hostname:"; + auto char arin_query[200]; + + try_next_addr: +- strcpy (arin_query, "net "); ++ strcpy (arin_query, "n "); + strcat (arin_query, dotted_blockname); + whois_data = whois (arin_server, arin_query); + if (whois_data == NULL) /* Server must be down! */ +@@ -1760,8 +1760,15 @@ + if (strncmp (whois_data, nomatch, sizeof nomatch -1)) + { + register char const *rwhois_data; ++ char const *orgname = strstr (whois_data, "OrgName:"); + +- if (!strncmp (whois_data, ripe1, sizeof ripe1 - 1)) ++ if (orgname) ++ { ++ orgname += sizeof "OrgName:"; ++ while (isspace (*orgname)) ++ orgname++; ++ } ++ if (orgname && !strncmp (orgname, ripe1, sizeof ripe1 - 1)) + { + if (try_ripe (dotted_quad)) + break; +@@ -1769,7 +1776,7 @@ + return 0; + } + +- if (!strncmp (whois_data, ripe2, sizeof ripe2 - 1)) ++ if (orgname && !strncmp (orgname, ripe2, sizeof ripe2 - 1)) + { + if (try_ripe (dotted_quad)) + break; +@@ -1777,7 +1784,7 @@ + return 0; + } + +- if (!strncmp (whois_data, apnic, sizeof apnic - 1)) ++ if (orgname && !strncmp (orgname, apnic, sizeof apnic - 1)) + { + if (try_apnic (dotted_quad)) + break; +@@ -1802,6 +1809,7 @@ + goto try_next_addr; + } + ++#if 0 /* needs fixing */ + if (!substr (whois_data, updated)) + { + /* Handle a special case. ARIN has returned to us a list of +@@ -1813,6 +1821,7 @@ + if ((whois_data = arin_grunge (whois_data, addr)) == NULL) + return 1; + } ++#endif + if ((rwhois_data = fetch_rwhois_data (whois_data, dotted_quad))) + return present_rwhois_style_results (rwhois_data, whois_data); + else |