Mercurial > hg > nginx
view src/stream/ngx_stream_ssl_module.h @ 6435:d1c791479bbb
Stream: post first read events from client and upstream.
The main proxy function ngx_stream_proxy_process() can terminate the stream
session. The code, following it, should check its return code to make sure the
session still exists. This happens in client and upstream initialization
functions. Swapping ngx_stream_proxy_process() call with the code, that
follows it, leaves the same problem vice versa.
In future ngx_stream_proxy_process() will call ngx_stream_proxy_next_upstream()
making it too complicated to know if stream session still exists after this
call.
Now ngx_stream_proxy_process() is called from posted event handlers in both
places with no code following it. The posted event is automatically removed
once session is terminated.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Tue, 15 Mar 2016 15:55:23 +0300 |
parents | 61d7ae76647d |
children | 51e1f047d15d |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_STREAM_SSL_H_INCLUDED_ #define _NGX_STREAM_SSL_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> #include <ngx_stream.h> typedef struct { ngx_msec_t handshake_timeout; ngx_flag_t prefer_server_ciphers; ngx_ssl_t ssl; ngx_uint_t protocols; ssize_t builtin_session_cache; time_t session_timeout; ngx_str_t certificate; ngx_str_t certificate_key; ngx_str_t dhparam; ngx_str_t ecdh_curve; ngx_str_t ciphers; ngx_array_t *passwords; ngx_shm_zone_t *shm_zone; ngx_flag_t session_tickets; ngx_array_t *session_ticket_keys; } ngx_stream_ssl_conf_t; extern ngx_module_t ngx_stream_ssl_module; #endif /* _NGX_STREAM_SSL_H_INCLUDED_ */