summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editors/emacs/files/patch-sum4
-rw-r--r--editors/emacs/patches/patch-aj65
2 files changed, 25 insertions, 44 deletions
diff --git a/editors/emacs/files/patch-sum b/editors/emacs/files/patch-sum
index cb61f201e97..2334100ed03 100644
--- a/editors/emacs/files/patch-sum
+++ b/editors/emacs/files/patch-sum
@@ -1,4 +1,4 @@
-$NetBSD: patch-sum,v 1.9 2000/03/10 15:45:34 minoura Exp $
+$NetBSD: patch-sum,v 1.10 2000/03/16 15:40:21 minoura Exp $
MD5 (patch-aa) = 41d31356a0b856d789ded3ef10bb4349
MD5 (patch-ab) = 8ccfa30c06be5b92e3e0842d2ced41ac
@@ -8,7 +8,7 @@ MD5 (patch-af) = 139ec0b39a8bad5ab5cdc2c3785a59de
MD5 (patch-ag) = 8b9c6e8c913adad34c90bfa432e88b02
MD5 (patch-ah) = f5d65419396384577c9fc01395b4c056
MD5 (patch-ai) = 3dcf3fe270ee92f099fc8dcdd5e286f9
-MD5 (patch-aj) = 61e6e5128d661dc78d479eec5984d807
+MD5 (patch-aj) = e923a667da601c89dc3a45581becb4dd
MD5 (patch-ak) = ef7fabe3fea75d799d8628d155a8b72c
MD5 (patch-aw) = ea21e8b5919296b3e7f31eb2a738136a
MD5 (patch-ax) = 46750ed00d5bff9fea4f330b0ca0fc41
diff --git a/editors/emacs/patches/patch-aj b/editors/emacs/patches/patch-aj
index 2c9ef872f58..4d82ab30e0e 100644
--- a/editors/emacs/patches/patch-aj
+++ b/editors/emacs/patches/patch-aj
@@ -1,27 +1,7 @@
-$NetBSD: patch-aj,v 1.4 2000/03/09 16:00:10 minoura Exp $
+$NetBSD: patch-aj,v 1.5 2000/03/16 15:40:22 minoura Exp $
-From lha@stacken.kth.se Mon Feb 28 03:43:18 2000
-Date: Sun, 27 Feb 2000 16:26:07 +0100
-From: Love <lha@stacken.kth.se>
-To: tech-pkg@netbsd.org
-Subject: editor/emacs
-
-
-Hi
-
-Emacs is ipv6 enable, great. But it doesn't loop over all addresses it
-get back from getaddrinfo. This causes problem if your ipv6 tunnel is
-done, but you still have ipv4 connectivity.
-
-The patch below saves the first errno, and the retries all addresses
-until it runs out of them.
-
-Thanks,
-Love
-
-
---- src/process.c.orig Thu Jul 8 07:36:24 1999
-+++ src/process.c Fri Mar 10 00:42:11 2000
+--- src/process.c.orig Tue Feb 15 19:16:26 2000
++++ src/process.c Fri Mar 17 00:02:40 2000
@@ -1,7 +1,18 @@
+/*
+ * Locally hacked process.c to add ipv6 support. -wsr
@@ -41,7 +21,7 @@ Love
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
-@@ -1806,15 +1817,22 @@
+@@ -1806,15 +1817,21 @@
{
Lisp_Object proc;
register int i;
@@ -58,7 +38,6 @@ Love
struct hostent host_info_fixed;
+ int port;
+#else /* HAVE_GETADDRINFO */
-+ int saved_errno;
+ struct addrinfo hints, *res, *lres;
+ int ret;
+ char *portstring, portbuf [128];
@@ -67,7 +46,7 @@ Love
struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
int retry = 0;
int count = specpdl_ptr - specpdl;
-@@ -1827,6 +1845,22 @@
+@@ -1827,6 +1844,22 @@
GCPRO4 (name, buffer, host, service);
CHECK_STRING (name, 0);
CHECK_STRING (host, 0);
@@ -90,7 +69,7 @@ Love
if (INTEGERP (service))
port = htons ((unsigned short) XINT (service));
else
-@@ -1837,6 +1871,8 @@
+@@ -1837,6 +1870,8 @@
error ("Unknown service \"%s\"", XSTRING (service)->data);
port = svc_info->s_port;
}
@@ -99,7 +78,7 @@ Love
/* Slow down polling to every ten seconds.
Some kernels have a bug which causes retrying connect to fail
-@@ -1846,6 +1882,86 @@
+@@ -1846,6 +1881,88 @@
#endif
#ifndef TERM
@@ -127,7 +106,8 @@ Love
+ immediate_quit = 0;
+ }
+
-+ for (lres = res; lres ; lres = lres->ai_next){ /* address loop */
++ lres = res;
++ addrloop: /* address loop */
+ s = socket(lres->ai_family, lres->ai_socktype, lres->ai_protocol);
+ if (s < 0)
+ report_file_error ("error creating socket", Fcons (name, Qnil));
@@ -149,7 +129,7 @@ Love
+ if (connect(s, lres->ai_addr, lres->ai_addrlen) == -1
+ && errno != EISCONN)
+ {
-+ saved_errno = errno;
++ int xerrno = errno;
+
+ immediate_quit = 0;
+
@@ -167,18 +147,19 @@ Love
+
+ close (s);
+
-+ if (lres == NULL) {
-+
-+ if (interrupt_input)
-+ request_sigio ();
-+
-+ errno = saved_errno;
-+ report_file_error ("connection failed",
-+ Fcons (host, Fcons (name, Qnil)));
-+ }
++ if (interrupt_input)
++ request_sigio ();
++
++ if (lres->ai_next) {
++ lres = lres->ai_next;
++ goto addrloop;
++ }
++
++
++ errno = xerrno;
++ report_file_error ("connection failed",
++ Fcons (host, Fcons (name, Qnil)));
+ }
-+ else
-+ break;
+ } /* address loop */
+ freeaddrinfo(res);
+#else /* HAVE_GETADDRINFO */
@@ -186,7 +167,7 @@ Love
while (1)
{
#ifdef TRY_AGAIN
-@@ -1936,6 +2052,7 @@
+@@ -1936,6 +2053,7 @@
report_file_error ("connection failed",
Fcons (host, Fcons (name, Qnil)));
}