diff options
-rw-r--r-- | CREDITS | 1 | ||||
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | acconfig.h | 6 | ||||
-rw-r--r-- | canohost.c | 26 | ||||
-rw-r--r-- | channels.c | 6 | ||||
-rw-r--r-- | configure.in | 22 |
6 files changed, 60 insertions, 2 deletions
@@ -19,6 +19,7 @@ David Agraz <dagraz@jahoopa.com> - Build fixes | |||
19 | David Rankin <drankin@bohemians.lexington.ky.us> - libwrap, AIX, NetBSD fixes | 19 | David Rankin <drankin@bohemians.lexington.ky.us> - libwrap, AIX, NetBSD fixes |
20 | Gary E. Miller <gem@rellim.com> - SCO support | 20 | Gary E. Miller <gem@rellim.com> - SCO support |
21 | HARUYAMA Seigo <haruyama@nt.phys.s.u-tokyo.ac.jp> - Translations & doc fixes | 21 | HARUYAMA Seigo <haruyama@nt.phys.s.u-tokyo.ac.jp> - Translations & doc fixes |
22 | Hideaki YOSHIFUJI <yoshfuji@ecei.tohoku.ac.jp> - IPv6 fixes | ||
22 | Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - Configure fixes | 23 | Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - Configure fixes |
23 | Holger Trapp <Holger.Trapp@Informatik.TU-Chemnitz.DE> - KRB4/AFS config patch | 24 | Holger Trapp <Holger.Trapp@Informatik.TU-Chemnitz.DE> - KRB4/AFS config patch |
24 | Jani Hakala <jahakala@cc.jyu.fi> - Patches | 25 | Jani Hakala <jahakala@cc.jyu.fi> - Patches |
@@ -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 | ||
8 | 20000309 | 9 | 20000309 |
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" |
17 | RCSID("$Id: canohost.c,v 1.7 2000/01/14 04:45:48 damien Exp $"); | 17 | RCSID("$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" |
19 | RCSID("$Id: channels.c,v 1.17 2000/03/03 11:35:33 damien Exp $"); | 19 | RCSID("$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 | ||
793 | AC_MSG_CHECKING([to convert IPv4 in IPv6-mapped addresses]) | ||
794 | AC_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 |
792 | piddir=/var/run | 814 | piddir=/var/run |
793 | AC_ARG_WITH(pid-dir, | 815 | AC_ARG_WITH(pid-dir, |