comparison src/event/ngx_event_openssl.h @ 358:9121a0a91f47 NGINX_0_6_23

nginx 0.6.23 *) Change: the "off" parameter in the "ssl_session_cache" directive; now this is default parameter. *) Change: the "open_file_cache_retest" directive was renamed to the "open_file_cache_valid". *) Feature: the "open_file_cache_min_uses" directive. *) Feature: the ngx_http_gzip_static_module. *) Feature: the "gzip_disable" directive. *) Feature: the "memcached_pass" directive may be used inside the "if" block. *) Bugfix: a segmentation fault occurred in worker process, if the "memcached_pass" and "if" directives were used in the same location. *) Bugfix: if a "satisfy_any on" directive was used and not all access and auth modules directives were set, then other given access and auth directives were not tested; *) Bugfix: regex parameters in a "valid_referers" directive were not inherited from previous level. *) Bugfix: a "post_action" directive did run if a request was completed with 499 status code. *) Bugfix: optimization of 16K buffer usage in a SSL connection. Thanks to Ben Maurer. *) Bugfix: the STARTTLS in SMTP mode did not work. Thanks to Oleg Motienko. *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" error; bug appeared in 0.5.13.
author Igor Sysoev <http://sysoev.ru>
date Thu, 27 Dec 2007 00:00:00 +0300
parents 052a7b1d40e5
children babd3d9efb62
comparison
equal deleted inserted replaced
357:16d557a75356 358:9121a0a91f47
51 } ngx_ssl_connection_t; 51 } ngx_ssl_connection_t;
52 52
53 53
54 #define NGX_SSL_DFLT_BUILTIN_SCACHE -2 54 #define NGX_SSL_DFLT_BUILTIN_SCACHE -2
55 #define NGX_SSL_NO_BUILTIN_SCACHE -3 55 #define NGX_SSL_NO_BUILTIN_SCACHE -3
56 #define NGX_SSL_NO_SCACHE -4
56 57
57 58
58 #define NGX_SSL_MAX_SESSION_SIZE (4096) 59 #define NGX_SSL_MAX_SESSION_SIZE 4096
59 60
60 typedef struct ngx_ssl_sess_id_s ngx_ssl_sess_id_t; 61 typedef struct ngx_ssl_sess_id_s ngx_ssl_sess_id_t;
61 62
62 struct ngx_ssl_sess_id_s { 63 struct ngx_ssl_sess_id_s {
63 ngx_rbtree_node_t node; 64 ngx_rbtree_node_t node;
64 u_char *id; 65 u_char *id;
65 size_t len; 66 size_t len;
66 u_char *session; 67 u_char *session;
67 ngx_ssl_sess_id_t *prev; 68 ngx_queue_t queue;
68 ngx_ssl_sess_id_t *next;
69 time_t expire; 69 time_t expire;
70 #if (NGX_PTR_SIZE == 8) 70 #if (NGX_PTR_SIZE == 8)
71 void *stub; 71 void *stub;
72 u_char sess_id[32]; 72 u_char sess_id[32];
73 #endif 73 #endif
74 }; 74 };
75 75
76 76
77 typedef struct { 77 typedef struct {
78 ngx_rbtree_t *session_rbtree; 78 ngx_rbtree_t session_rbtree;
79 ngx_ssl_sess_id_t session_cache_head; 79 ngx_rbtree_node_t sentinel;
80 ngx_ssl_sess_id_t session_cache_tail; 80 ngx_queue_t expire_queue;
81 } ngx_ssl_session_cache_t; 81 } ngx_ssl_session_cache_t;
82 82
83 83
84 84
85 #define NGX_SSL_SSLv2 2 85 #define NGX_SSL_SSLv2 2
130 ssize_t ngx_ssl_recv(ngx_connection_t *c, u_char *buf, size_t size); 130 ssize_t ngx_ssl_recv(ngx_connection_t *c, u_char *buf, size_t size);
131 ssize_t ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size); 131 ssize_t ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size);
132 ssize_t ngx_ssl_recv_chain(ngx_connection_t *c, ngx_chain_t *cl); 132 ssize_t ngx_ssl_recv_chain(ngx_connection_t *c, ngx_chain_t *cl);
133 ngx_chain_t *ngx_ssl_send_chain(ngx_connection_t *c, ngx_chain_t *in, 133 ngx_chain_t *ngx_ssl_send_chain(ngx_connection_t *c, ngx_chain_t *in,
134 off_t limit); 134 off_t limit);
135 void ngx_ssl_free_buffer(ngx_connection_t *c);
135 ngx_int_t ngx_ssl_shutdown(ngx_connection_t *c); 136 ngx_int_t ngx_ssl_shutdown(ngx_connection_t *c);
136 void ngx_cdecl ngx_ssl_error(ngx_uint_t level, ngx_log_t *log, ngx_err_t err, 137 void ngx_cdecl ngx_ssl_error(ngx_uint_t level, ngx_log_t *log, ngx_err_t err,
137 char *fmt, ...); 138 char *fmt, ...);
138 void ngx_ssl_cleanup_ctx(void *data); 139 void ngx_ssl_cleanup_ctx(void *data);
139 140