diff options
-rw-r--r-- | editors/emacs/files/patch-sum | 4 | ||||
-rw-r--r-- | editors/emacs/patches/patch-aj | 65 |
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))); } |