comparison src/event/ngx_event_openssl.h @ 7612:1ce3f01a4355

SSL: reworked posted next events. Introduced in 9d2ad2fb4423 available bytes handling in SSL relied on connection read handler being overwritten to set the ready flag and the amount of available bytes. This approach is, however, does not work properly when connection read handler is changed, for example, when switching to a next pipelined request, and can result in unexpected connection timeouts, see here: http://mailman.nginx.org/pipermail/nginx-devel/2019-December/012825.html Fix is to introduce ngx_event_process_posted_next() instead, which will set ready and available regardless of how event handler is set.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 24 Dec 2019 17:24:59 +0300
parents 9d2ad2fb4423
children 8409f9df6219 5d91389e0fd3
comparison
equal deleted inserted replaced
7611:8e64e11aaca0 7612:1ce3f01a4355
84 ngx_ssl_session_t *session; 84 ngx_ssl_session_t *session;
85 ngx_connection_handler_pt save_session; 85 ngx_connection_handler_pt save_session;
86 86
87 ngx_event_handler_pt saved_read_handler; 87 ngx_event_handler_pt saved_read_handler;
88 ngx_event_handler_pt saved_write_handler; 88 ngx_event_handler_pt saved_write_handler;
89 ngx_event_handler_pt next_read_handler;
90 89
91 u_char early_buf; 90 u_char early_buf;
92 91
93 unsigned handshaked:1; 92 unsigned handshaked:1;
94 unsigned renegotiation:1; 93 unsigned renegotiation:1;