mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-07 19:31:01 -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);
|
||||
}
|
||||
#else
|
||||
if (fcntl(fd, F_SETFL, O_NONBLOCK) == -1) {
|
||||
event_warn("fcntl(O_NONBLOCK)");
|
||||
return -1;
|
||||
{
|
||||
long flags;
|
||||
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
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user