Software /
code /
prosody
Comparison
util-src/poll.c @ 9437:b202aa1e2d7b
util.poll: Fix monitoring of socket exceptions in select mode
Since state->err is a set of all watched FDs, this mistake caused all
sockets to appear to have errors.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 06 Oct 2018 17:19:50 +0200 |
parent | 9318:3429006518bf |
child | 9440:1ddecde4ce98 |
comparison
equal
deleted
inserted
replaced
9436:a950f9fa9137 | 9437:b202aa1e2d7b |
---|---|
291 | 291 |
292 struct timeval tv; | 292 struct timeval tv; |
293 tv.tv_sec = (time_t)timeout; | 293 tv.tv_sec = (time_t)timeout; |
294 tv.tv_usec = ((suseconds_t)(timeout * 1000000)) % 1000000; | 294 tv.tv_usec = ((suseconds_t)(timeout * 1000000)) % 1000000; |
295 | 295 |
296 ret = select(FD_SETSIZE, &state->readable, &state->writable, NULL, &tv); | 296 ret = select(FD_SETSIZE, &state->readable, &state->writable, &state->err, &tv); |
297 #endif | 297 #endif |
298 | 298 |
299 if(ret == 0) { | 299 if(ret == 0) { |
300 lua_pushnil(L); | 300 lua_pushnil(L); |
301 lua_pushstring(L, "timeout"); | 301 lua_pushstring(L, "timeout"); |