diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-10-30 00:24:32 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-10-30 00:26:10 +0000 |
commit | 871d7b945a5d0c788b68e586bd03afeb3812a834 (patch) | |
tree | 788ca1bf447813dd574cab1782d949593f188af7 /pfinet/socket-ops.c | |
parent | 0da1805bdd58125b01c3b1a9d95c3d6f495d2159 (diff) | |
download | hurd-871d7b945a5d0c788b68e586bd03afeb3812a834.tar.gz hurd-871d7b945a5d0c788b68e586bd03afeb3812a834.tar.bz2 hurd-871d7b945a5d0c788b68e586bd03afeb3812a834.zip |
Fix connect(AF_UNSPEC)
Fixes sshd startup on inet6-enabled systems.
* pfinet/socket-ops.c (S_socket_create_address): Accept creating
AF_UNSPEC addresses too.
* pfinet/linux-src/net/ipv6/udp_ipv6.c (udpv6_connect): When address
family is AF_UNSPEC, call udp_connect() and clear daddr, saddr, and
rcv_saddr.
Diffstat (limited to 'pfinet/socket-ops.c')
-rw-r--r-- | pfinet/socket-ops.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/pfinet/socket-ops.c b/pfinet/socket-ops.c index b9ce6c72..02675425 100644 --- a/pfinet/socket-ops.c +++ b/pfinet/socket-ops.c @@ -299,7 +299,8 @@ S_socket_create_address (mach_port_t server, struct sock_addr *addrstruct; const struct sockaddr *const sa = (void *) data; - if (sockaddr_type != AF_INET && sockaddr_type != AF_INET6) + if (sockaddr_type != AF_INET && sockaddr_type != AF_INET6 + && sockaddr_type != AF_UNSPEC) return EAFNOSUPPORT; if (sa->sa_family != sockaddr_type || data_len < offsetof (struct sockaddr, sa_data)) |