SSL: improved ngx_ssl_recv_chain() to stop if c->read->ready is 0.

As long as there are data to read in the socket, yet the amount of data
is less than total size of the buffers in the chain, this saves one
unneeded read() syscall.  Before this change, reading only stopped if
ngx_ssl_recv() returned no data, that is, two read() syscalls in a row
returned EAGAIN.
This commit is contained in:
Maxim Dounin 2019-10-17 16:02:13 +03:00
parent 60609f2372
commit d2ea226229

View File

@ -1922,6 +1922,10 @@ ngx_ssl_recv_chain(ngx_connection_t *c, ngx_chain_t *cl, off_t limit)
last += n;
bytes += n;
if (!c->read->ready) {
return bytes;
}
if (last == b->end) {
cl = cl->next;