commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] Debian GNU Hurd packaging branch, upstream, updated. upstream/hurd


From: Samuel Thibault
Subject: [SCM] Debian GNU Hurd packaging branch, upstream, updated. upstream/hurd/20100926-6-g871d7b9
Date: Sat, 30 Oct 2010 00:25:53 +0000

The following commit has been merged in the upstream branch:
commit 871d7b945a5d0c788b68e586bd03afeb3812a834
Author: Samuel Thibault <address@hidden>
Date:   Sat Oct 30 00:24:32 2010 +0000

    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.

diff --git a/pfinet/linux-src/net/ipv6/udp_ipv6.c 
b/pfinet/linux-src/net/ipv6/udp_ipv6.c
index 4511c02..1886e8a 100644
--- a/pfinet/linux-src/net/ipv6/udp_ipv6.c
+++ b/pfinet/linux-src/net/ipv6/udp_ipv6.c
@@ -212,6 +212,14 @@ int udpv6_connect(struct sock *sk, struct sockaddr *uaddr, 
int addr_len)
                goto ipv4_connected;
        }
 
+       if (usin->sin6_family == AF_UNSPEC) {
+               udp_connect(sk, uaddr, addr_len);
+               ipv6_addr_set(&np->daddr, 0, 0, 0, 0);
+               ipv6_addr_set(&np->saddr, 0, 0, 0, 0);
+               ipv6_addr_set(&np->rcv_saddr, 0, 0, 0, 0);
+               return 0;
+       }
+
        if (addr_len < sizeof(*usin)) 
                return(-EINVAL);
 
diff --git a/pfinet/socket-ops.c b/pfinet/socket-ops.c
index b9ce6c7..0267542 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))

-- 
Debian GNU Hurd packaging



reply via email to

[Prev in Thread] Current Thread [Next in Thread]