summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authoragc <agc>2003-12-15 17:02:22 +0000
committeragc <agc>2003-12-15 17:02:22 +0000
commite246fb575bf6b0762444dbf4448ed8e1b86e9a6c (patch)
treeb1471cd849eb3ca7cc8a3ea9eef5ae90e47ac126 /net
parentc6eb483efbfa32ea07703099d28840df0a189da1 (diff)
downloadpkgsrc-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/Makefile3
-rw-r--r--net/ipw/distinfo3
-rw-r--r--net/ipw/patches/patch-ab81
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