--- trealla-2.82.28/src/network.c.orig +++ trealla-2.82.28/src/network.c @@ -43,10 +43,13 @@ #endif #include #include +#include #include #include #include +#include #include +#include #endif int net_domain_connect(const char *name, bool udp) @@ -128,7 +131,7 @@ int flag = 1; setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&flag, sizeof(flag)); int flag2 = 1; - setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, (char *)&flag2, sizeof(flag2)); +// setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, (char *)&flag2, sizeof(flag2)); if (connect(fd, rp->ai_addr, rp->ai_addrlen) != -1) break; @@ -183,7 +186,7 @@ int flag = 1; setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&flag, sizeof(flag)); int flag2 = 1; - setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, (char *)&flag2, sizeof(flag2)); +// setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, (char *)&flag2, sizeof(flag2)); if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0) break; @@ -263,8 +266,8 @@ void net_set_nonblocking(stream *str) { #if !defined(_WIN32) && !defined(__wasi__) - unsigned long flag = 1; - ioctl(fileno(str->fp), FIONBIO, &flag); + int flags = fcntl(fileno(str->fp), F_GETFL, 0); + fcntl(fileno(str->fp), F_SETFL, flags | O_NONBLOCK); #endif }