Fixed event flags handling edge cases in ngx_wsarecv() and ngx_wsarecv_chain(),
notably to always reset rev->ready in case of errors (which wasn't the case
after ngx_socket_nread() errors), and after EOF (rev->ready was not cleared
if due to a misconfiguration a zero-sized buffer was used for reading).
ngx_socket_nread_n " failed");
if (n == NGX_ERROR) {
+ rev->ready = 0;
rev->error = 1;
}
}
if (bytes == 0) {
+ rev->ready = 0;
rev->eof = 1;
}
} else if (bytes == size) {
if (ngx_socket_nread(c->fd, &rev->available) == -1) {
+ rev->ready = 0;
rev->error = 1;
ngx_connection_error(c, ngx_socket_errno,
ngx_socket_nread_n " failed");
}
if (bytes == 0) {
+ rev->ready = 0;
rev->eof = 1;
}