- (djm) Bug #401: Work around Linux breakage with IPv6 mapped addresses.
Based on fix from yoshfuji@linux-ipv6.org
This commit is contained in:
parent
dfedbf8e5a
commit
5e4471e45a
|
@ -1,3 +1,7 @@
|
|||
20030107
|
||||
- (djm) Bug #401: Work around Linux breakage with IPv6 mapped addresses.
|
||||
Based on fix from yoshfuji@linux-ipv6.org
|
||||
|
||||
20030103
|
||||
- (djm) Bug #461: ssh-copy-id fails with no arguments. Patch from
|
||||
cjwatson@debian.org
|
||||
|
@ -925,4 +929,4 @@
|
|||
save auth method before monitor_reset_key_state(); bugzilla bug #284;
|
||||
ok provos@
|
||||
|
||||
$Id: ChangeLog,v 1.2540 2003/01/03 03:52:53 djm Exp $
|
||||
$Id: ChangeLog,v 1.2541 2003/01/06 23:51:23 djm Exp $
|
||||
|
|
13
canohost.c
13
canohost.c
|
@ -59,11 +59,14 @@ get_remote_hostname(int socket, int verify_reverse_mapping)
|
|||
memset(&from, 0, sizeof(from));
|
||||
|
||||
from4->sin_family = AF_INET;
|
||||
fromlen = sizeof(*from4);
|
||||
memcpy(&from4->sin_addr, &addr, sizeof(addr));
|
||||
from4->sin_port = port;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (from.ss_family == AF_INET6)
|
||||
fromlen = sizeof(struct sockaddr_in6);
|
||||
|
||||
if (getnameinfo((struct sockaddr *)&from, fromlen, ntop, sizeof(ntop),
|
||||
NULL, 0, NI_NUMERICHOST) != 0)
|
||||
|
@ -225,6 +228,11 @@ get_socket_address(int socket, int remote, int flags)
|
|||
< 0)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Work around Linux IPv6 weirdness */
|
||||
if (addr.ss_family == AF_INET6)
|
||||
addrlen = sizeof(struct sockaddr_in6);
|
||||
|
||||
/* Get the address in ascii. */
|
||||
if (getnameinfo((struct sockaddr *)&addr, addrlen, ntop, sizeof(ntop),
|
||||
NULL, 0, flags) != 0) {
|
||||
|
@ -319,6 +327,11 @@ get_sock_port(int sock, int local)
|
|||
fatal_cleanup();
|
||||
}
|
||||
}
|
||||
|
||||
/* Work around Linux IPv6 weirdness */
|
||||
if (from.ss_family == AF_INET6)
|
||||
fromlen = sizeof(struct sockaddr_in6);
|
||||
|
||||
/* Return port number. */
|
||||
if (getnameinfo((struct sockaddr *)&from, fromlen, NULL, 0,
|
||||
strport, sizeof(strport), NI_NUMERICSERV) != 0)
|
||||
|
|
Loading…
Reference in New Issue