summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/network/socket.c3
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);