Cygwin: make socketpair an AF_LOCAL-only method
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
@@ -2303,7 +2303,7 @@ socketpair (int af, int type, int protocol, int *sb)
|
||||
{
|
||||
int res = -1;
|
||||
const device *dev;
|
||||
fhandler_socket *fh_in, *fh_out;
|
||||
fhandler_socket_local *fh_in, *fh_out;
|
||||
|
||||
int flags = type & _SOCK_FLAG_MASK;
|
||||
type &= ~_SOCK_FLAG_MASK;
|
||||
@@ -2325,18 +2325,6 @@ socketpair (int af, int type, int protocol, int *sb)
|
||||
}
|
||||
dev = type == SOCK_STREAM ? stream_dev : dgram_dev;
|
||||
break;
|
||||
#if 0 /* FIXME: Given neither BSD nor Linux support anything other than AF_LOCAL
|
||||
sockets, we deliberately disable AF_INIT socketpairs now and hope for
|
||||
the best. */
|
||||
case AF_INET:
|
||||
if (type != SOCK_STREAM && type != SOCK_DGRAM)
|
||||
{
|
||||
set_errno (EINVAL);
|
||||
goto done;
|
||||
}
|
||||
dev = type == SOCK_STREAM ? tcp_dev : udp_dev;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
set_errno (EAFNOSUPPORT);
|
||||
goto done;
|
||||
@@ -2360,8 +2348,8 @@ socketpair (int af, int type, int protocol, int *sb)
|
||||
goto done;
|
||||
}
|
||||
|
||||
fh_in = (fhandler_socket *) build_fh_dev (*dev);
|
||||
fh_out = (fhandler_socket *) build_fh_dev (*dev);
|
||||
fh_in = reinterpret_cast<fhandler_socket_local *> (build_fh_dev (*dev));
|
||||
fh_out = reinterpret_cast<fhandler_socket_local *> (build_fh_dev (*dev));
|
||||
if (fh_in && fh_out
|
||||
&& fh_in->socketpair (af, type, protocol, flags, fh_out) == 0)
|
||||
{
|
||||
|
Reference in New Issue
Block a user