Please see apr/network_io/unix/sockopt.c line 214.
The comment above that check says:
/* must disable the incomplete read support if we change to a
* blocking socket.
*/
if (on == 0) {
...disable incomplete reads...
}
But, if on == 0, we're a non-blocking socket (timeout value of 0
implies we're non-blocking). So, I think we have a mismatch.
Shouldn't that be:
if (on < 0) {
...disable incomplete reads...
}
else {
...enable incomplete reads...
}
Or, am I missing something? And, indeed, we could move this to
the if checks a few lines above whenever the state changes, but this
is an O(1) op, so it isn't a big deal. -- justin