summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CREDITS1
-rw-r--r--ChangeLog1
-rw-r--r--acconfig.h6
-rw-r--r--canohost.c26
-rw-r--r--channels.c6
-rw-r--r--configure.in22
6 files changed, 60 insertions, 2 deletions
diff --git a/CREDITS b/CREDITS
index 50a0447eb..43f1c1a76 100644
--- a/CREDITS
+++ b/CREDITS
@@ -19,6 +19,7 @@ David Agraz <dagraz@jahoopa.com> - Build fixes
19David Rankin <drankin@bohemians.lexington.ky.us> - libwrap, AIX, NetBSD fixes 19David Rankin <drankin@bohemians.lexington.ky.us> - libwrap, AIX, NetBSD fixes
20Gary E. Miller <gem@rellim.com> - SCO support 20Gary E. Miller <gem@rellim.com> - SCO support
21HARUYAMA Seigo <haruyama@nt.phys.s.u-tokyo.ac.jp> - Translations & doc fixes 21HARUYAMA Seigo <haruyama@nt.phys.s.u-tokyo.ac.jp> - Translations & doc fixes
22Hideaki YOSHIFUJI <yoshfuji@ecei.tohoku.ac.jp> - IPv6 fixes
22Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - Configure fixes 23Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - Configure fixes
23Holger Trapp <Holger.Trapp@Informatik.TU-Chemnitz.DE> - KRB4/AFS config patch 24Holger Trapp <Holger.Trapp@Informatik.TU-Chemnitz.DE> - KRB4/AFS config patch
24Jani Hakala <jahakala@cc.jyu.fi> - Patches 25Jani Hakala <jahakala@cc.jyu.fi> - Patches
diff --git a/ChangeLog b/ChangeLog
index eba385a8f..04fef5eff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@
4 [sshd.c] 4 [sshd.c]
5 - disallow guessing of root password 5 - disallow guessing of root password
6 - More configure fixes 6 - More configure fixes
7 - IPv6 workarounds from Hideaki YOSHIFUJI <yoshfuji@ecei.tohoku.ac.jp>
7 8
820000309 920000309
9 - OpenBSD CVS updates to v1.2.3 10 - OpenBSD CVS updates to v1.2.3
diff --git a/acconfig.h b/acconfig.h
index 7f51937a4..ee3be6e33 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -153,6 +153,12 @@
153/* getaddrinfo is broken (if present) */ 153/* getaddrinfo is broken (if present) */
154#undef BROKEN_GETADDRINFO 154#undef BROKEN_GETADDRINFO
155 155
156/* Workaround more Linux IPv6 bugs */
157#undef DONT_TRY_OTHER_AF
158
159/* Detect IPv4 in IPv6 mapped addresses and treat as IPv4 */
160#undef IPV4_IN_IPV6
161
156@BOTTOM@ 162@BOTTOM@
157 163
158/* ******************* Shouldn't need to edit below this line ************** */ 164/* ******************* Shouldn't need to edit below this line ************** */
diff --git a/canohost.c b/canohost.c
index 9a6d8b732..a11d66392 100644
--- a/canohost.c
+++ b/canohost.c
@@ -14,7 +14,7 @@
14 */ 14 */
15 15
16#include "includes.h" 16#include "includes.h"
17RCSID("$Id: canohost.c,v 1.7 2000/01/14 04:45:48 damien Exp $"); 17RCSID("$Id: canohost.c,v 1.8 2000/03/11 09:45:41 damien Exp $");
18 18
19#include "packet.h" 19#include "packet.h"
20#include "xmalloc.h" 20#include "xmalloc.h"
@@ -42,6 +42,30 @@ get_remote_hostname(int socket)
42 debug("getpeername failed: %.100s", strerror(errno)); 42 debug("getpeername failed: %.100s", strerror(errno));
43 fatal_cleanup(); 43 fatal_cleanup();
44 } 44 }
45
46#ifdef IPV4_IN_IPV6
47 if (from.ss_family == AF_INET6) {
48 struct sockaddr_in6 *from6 = (struct sockaddr_in6 *)&from;
49
50 /* Detect IPv4 in IPv6 mapped address and convert it to */
51 /* plain (AF_INET) IPv4 address */
52 if (IN6_IS_ADDR_V4MAPPED(&from6->sin6_addr)) {
53 struct sockaddr_in *from4 = (struct sockaddr_in *)&from;
54 struct in_addr addr;
55 u_int16_t port;
56
57 memcpy(&addr, ((char *)&from6->sin6_addr) + 12, sizeof(addr));
58 port = from6->sin6_port;
59
60 memset(&from, 0, sizeof(from));
61
62 from4->sin_family = AF_INET;
63 memcpy(&from4->sin_addr, &addr, sizeof(addr));
64 from4->sin_port = port;
65 }
66 }
67#endif
68
45 if (getnameinfo((struct sockaddr *)&from, fromlen, ntop, sizeof(ntop), 69 if (getnameinfo((struct sockaddr *)&from, fromlen, ntop, sizeof(ntop),
46 NULL, 0, NI_NUMERICHOST) != 0) 70 NULL, 0, NI_NUMERICHOST) != 0)
47 fatal("get_remote_hostname: getnameinfo NI_NUMERICHOST failed"); 71 fatal("get_remote_hostname: getnameinfo NI_NUMERICHOST failed");
diff --git a/channels.c b/channels.c
index 7d5e9a1af..090cbf095 100644
--- a/channels.c
+++ b/channels.c
@@ -16,7 +16,7 @@
16 */ 16 */
17 17
18#include "includes.h" 18#include "includes.h"
19RCSID("$Id: channels.c,v 1.17 2000/03/03 11:35:33 damien Exp $"); 19RCSID("$Id: channels.c,v 1.18 2000/03/11 09:45:41 damien Exp $");
20 20
21#include "ssh.h" 21#include "ssh.h"
22#include "packet.h" 22#include "packet.h"
@@ -1215,8 +1215,12 @@ x11_create_display_inet(int screen_number, int x11_display_offset)
1215 break; 1215 break;
1216 } 1216 }
1217 socks[num_socks++] = sock; 1217 socks[num_socks++] = sock;
1218#ifndef DONT_TRY_OTHER_AF
1218 if (num_socks == NUM_SOCKS) 1219 if (num_socks == NUM_SOCKS)
1219 break; 1220 break;
1221#else
1222 break;
1223#endif
1220 } 1224 }
1221 if (num_socks > 0) 1225 if (num_socks > 0)
1222 break; 1226 break;
diff --git a/configure.in b/configure.in
index 90aadd98f..4f1e4796e 100644
--- a/configure.in
+++ b/configure.in
@@ -55,6 +55,8 @@ case "$host" in
55 ;; 55 ;;
56*-*-linux*) 56*-*-linux*)
57 no_dev_ptmx=1 57 no_dev_ptmx=1
58 AC_DEFINE(DONT_TRY_OTHER_AF)
59 inet6_default_4in6=yes
58 ;; 60 ;;
59*-*-netbsd*) 61*-*-netbsd*)
60 need_dash_r=1 62 need_dash_r=1
@@ -788,6 +790,26 @@ AC_ARG_WITH(ipv4-default,
788 ] 790 ]
789) 791)
790 792
793AC_MSG_CHECKING([to convert IPv4 in IPv6-mapped addresses])
794AC_ARG_WITH(4in6,
795 [ --with-4in6 Check for and convert IPv4 in IPv6 mapped addresses],
796 [
797 if test "x$withval" != "xno" ; then
798 AC_MSG_RESULT(yes)
799 AC_DEFINE(IPV4_IN_IPV6)
800 else
801 AC_MSG_RESULT(no)
802 fi
803 ],[
804 if test "x$inet6_default_4in6" = "xyes"; then
805 AC_MSG_RESULT([yes (default)])
806 AC_DEFINE(IPV4_IN_IPV6)
807 else
808 AC_MSG_RESULT([no (default)])
809 fi
810 ]
811)
812
791# Where to place sshd.pid 813# Where to place sshd.pid
792piddir=/var/run 814piddir=/var/run
793AC_ARG_WITH(pid-dir, 815AC_ARG_WITH(pid-dir,