Mercurial > hg > nginx
diff src/event/ngx_event_connect.h @ 1284:be2b895d31e0
fix segfault when session was freed twice
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 10 Jul 2007 21:04:37 +0000 |
parents | 4d68c486fcb0 |
children | ebcee0063cd8 |
line wrap: on
line diff
--- a/src/event/ngx_event_connect.h Tue Jul 10 20:53:45 2007 +0000 +++ b/src/event/ngx_event_connect.h Tue Jul 10 21:04:37 2007 +0000 @@ -13,50 +13,56 @@ #include <ngx_event.h> -#define NGX_PEER_KEEPALIVE 1 -#define NGX_PEER_NEXT 2 -#define NGX_PEER_FAILED 4 +#define NGX_PEER_KEEPALIVE 1 +#define NGX_PEER_NEXT 2 +#define NGX_PEER_FAILED 4 typedef struct ngx_peer_connection_s ngx_peer_connection_t; typedef ngx_int_t (*ngx_event_get_peer_pt)(ngx_peer_connection_t *pc, void *data); -#if (NGX_SSL) -typedef void (*ngx_event_save_peer_pt)(ngx_peer_connection_t *pc, void *data); -#endif typedef void (*ngx_event_free_peer_pt)(ngx_peer_connection_t *pc, void *data, ngx_uint_t state); +#if (NGX_SSL) + +typedef ngx_int_t (*ngx_event_set_peer_session_pt)(ngx_peer_connection_t *pc, + void *data); +typedef void (*ngx_event_save_peer_session_pt)(ngx_peer_connection_t *pc, + void *data); +#endif struct ngx_peer_connection_s { - ngx_connection_t *connection; + ngx_connection_t *connection; - struct sockaddr *sockaddr; - socklen_t socklen; - ngx_str_t *name; + struct sockaddr *sockaddr; + socklen_t socklen; + ngx_str_t *name; - ngx_uint_t tries; + ngx_uint_t tries; - ngx_event_get_peer_pt get; - ngx_event_free_peer_pt free; - void *data; + ngx_event_get_peer_pt get; + ngx_event_free_peer_pt free; + void *data; #if (NGX_SSL) - ngx_ssl_session_t *ssl_session; - ngx_event_save_peer_pt save_session; + ngx_event_set_peer_session_pt set_session; + ngx_event_save_peer_session_pt save_session; #endif #if (NGX_THREADS) - ngx_atomic_t *lock; + ngx_atomic_t *lock; #endif - int rcvbuf; + int rcvbuf; + + ngx_log_t *log; - ngx_log_t *log; + unsigned cached:1; - unsigned cached:1; - unsigned log_error:2; /* ngx_connection_log_error_e */ + /* ngx_connection_log_error_e */ + unsigned log_error:2; };