mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-10 04:50:37 -04:00
Make evutil_make_socket_nonblocking() leave any other flags alone.
Fixes bug 2922121
This commit is contained in:
parent
fee2c77919
commit
4c8b7cdc64
13
evutil.c
13
evutil.c
@ -184,9 +184,16 @@ evutil_make_socket_nonblocking(evutil_socket_t fd)
|
|||||||
ioctlsocket(fd, FIONBIO, (unsigned long*) &nonblocking);
|
ioctlsocket(fd, FIONBIO, (unsigned long*) &nonblocking);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
if (fcntl(fd, F_SETFL, O_NONBLOCK) == -1) {
|
{
|
||||||
event_warn("fcntl(O_NONBLOCK)");
|
long flags;
|
||||||
return -1;
|
if ((flags = fcntl(fd, F_GETFL, NULL)) < 0) {
|
||||||
|
event_warn("fcntl(F_GETFL)");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (fcntl(fd, F_SETFL, flags | O_NONBLOCK) < 0) {
|
||||||
|
event_warn("fcntl(O_NONBLOCK)");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user