On Wed, 01.02.12 17:37, Tom Gundersen (t...@jklm.no) 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. _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel