Latest update - 7345

This commit is contained in:
2018-08-30 00:26:23 +09:00
parent 228163d495
commit 00562c1dcb
+21 -15
View File
@@ -249,34 +249,40 @@ ngx_stream_core_preread_phase(ngx_stream_session_t *s,
} }
if (!c->read->ready) { if (!c->read->ready) {
if (ngx_handle_read_event(c->read, 0) != NGX_OK) { break;
rc = NGX_ERROR;
break;
}
if (!c->read->timer_set) {
ngx_add_timer(c->read, cscf->preread_timeout);
}
c->read->handler = ngx_stream_session_handler;
return NGX_OK;
} }
n = c->recv(c, c->buffer->last, size); n = c->recv(c, c->buffer->last, size);
if (n == NGX_ERROR) { if (n == NGX_ERROR || n == 0) {
rc = NGX_STREAM_OK; rc = NGX_STREAM_OK;
break; break;
} }
if (n > 0) { if (n == NGX_AGAIN) {
c->buffer->last += n; break;
} }
c->buffer->last += n;
rc = ph->handler(s); rc = ph->handler(s);
} }
if (rc == NGX_AGAIN) {
if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
ngx_stream_finalize_session(s, NGX_STREAM_INTERNAL_SERVER_ERROR);
return NGX_OK;
}
if (!c->read->timer_set) {
ngx_add_timer(c->read, cscf->preread_timeout);
}
c->read->handler = ngx_stream_session_handler;
return NGX_OK;
}
if (c->read->timer_set) { if (c->read->timer_set) {
ngx_del_timer(c->read); ngx_del_timer(c->read);
} }