Welcome! Log In Create A New Profile

Advanced

[nginx] SSL: fixed c->read->ready handling in ngx_ssl_recv().

Maxim Dounin
February 10, 2014 08:38AM
details: http://hg.nginx.org/nginx/rev/35b00bcf72fe
branches: stable-1.4
changeset: 5561:35b00bcf72fe
user: Maxim Dounin <mdounin@mdounin.ru>
date: Fri Nov 29 17:16:06 2013 +0400
description:
SSL: fixed c->read->ready handling in ngx_ssl_recv().

If c->read->ready was reset, but later some data were read from a socket
buffer due to a call to ngx_ssl_recv(), the c->read->ready flag should
be restored if not all data were read from OpenSSL buffers (as kernel
won't notify us about the data anymore).

More details are available here:
http://mailman.nginx.org/pipermail/nginx/2013-November/041178.html

diffstat:

src/event/ngx_event_openssl.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)

diffs (22 lines):

diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -965,6 +965,7 @@ ngx_ssl_recv(ngx_connection_t *c, u_char
size -= n;

if (size == 0) {
+ c->read->ready = 1;
return bytes;
}

@@ -974,6 +975,10 @@ ngx_ssl_recv(ngx_connection_t *c, u_char
}

if (bytes) {
+ if (c->ssl->last != NGX_AGAIN) {
+ c->read->ready = 1;
+ }
+
return bytes;
}


_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] SSL: fixed c->read->ready handling in ngx_ssl_recv().

Maxim Dounin 517 February 10, 2014 08:38AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 188
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready