Make unix (local) sockets work without IPv6 enabled
The xsocket_type() function had an optional "family" argument that was enabled only if IPv6 is enabled. In the case of the function was called with a valid AF_UNIX argument, and IPv6 is disabled, this argument was silently ignored. This patch makes the "family" argument mandatory, while keeping the old behavior i.e., if AF_UNSPEC is passed, we try first IPv6 (if it's enabled) and fallback to IPv4. Also I changed all callers of xsocket_type() to reflect its new interface. Signed-off-by: Jonh Wendell <jonh.wendell@vexcorp.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
committed by
Denys Vlasenko
parent
638dbc34b3
commit
9106107a50
@@ -568,12 +568,7 @@ enum {
|
||||
* and if kernel doesn't support it, fall back to IPv4.
|
||||
* This is useful if you plan to bind to resulting local lsa.
|
||||
*/
|
||||
#if ENABLE_FEATURE_IPV6
|
||||
int xsocket_type(len_and_sockaddr **lsap, int af, int sock_type) FAST_FUNC;
|
||||
#else
|
||||
int xsocket_type(len_and_sockaddr **lsap, int sock_type) FAST_FUNC;
|
||||
#define xsocket_type(lsap, af, sock_type) xsocket_type((lsap), (sock_type))
|
||||
#endif
|
||||
int xsocket_stream(len_and_sockaddr **lsap) FAST_FUNC;
|
||||
/* Create server socket bound to bindaddr:port. bindaddr can be NULL,
|
||||
* numeric IP ("N.N.N.N") or numeric IPv6 address,
|
||||
|
Reference in New Issue
Block a user