diff options
-rw-r--r-- | src/network/socket.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/network/socket.c b/src/network/socket.c index ba8d45b1..51be30ee 100644 --- a/src/network/socket.c +++ b/src/network/socket.c @@ -6,7 +6,8 @@ int socket(int domain, int type, int protocol) { int s = socketcall(socket, domain, type, protocol, 0, 0, 0); - if (s<0 && errno==EINVAL && (type&(SOCK_CLOEXEC|SOCK_NONBLOCK))) { + if (s<0 && (errno==EINVAL || errno==EPROTONOSUPPORT) + && (type&(SOCK_CLOEXEC|SOCK_NONBLOCK))) { s = socketcall(socket, domain, type & ~(SOCK_CLOEXEC|SOCK_NONBLOCK), protocol, 0, 0, 0); |