On Wed, 01.02.12 17:37, Tom Gundersen (teg@xxxxxxx) wrote: > >> + /* Try to find if one of the systemd sockets we were given match > >> + * our netconfig structure. */ > >> + > >> + for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + n; fd++) { > >> + struct __rpc_sockinfo si_other; > >> + union { > >> + struct sockaddr sa; > >> + struct sockaddr_un un; > >> + struct sockaddr_in in4; > >> + struct sockaddr_in6 in6; > >> + struct sockaddr_storage storage; > >> + } sa; > > > > Why is sockaddr_storage included in this union? > > This is from Lennart's original patch. Lennart, care to comment? Well, simply because sockaddr_storage is the actual struct one should normally use for this kind of thing (where you try to determine a sockaddr from a socket you don't know at all). With one exception however, sockaddr_un is actually longer than sockaddr_storage, which is documented borkedness in the socket API. Lennart -- Lennart Poettering - Red Hat, Inc. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html