Mercurial > hg > nginx
diff src/event/ngx_event_connect.h @ 884:4d68c486fcb0
upstream choice modules
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 04 Dec 2006 16:46:13 +0000 |
parents | 39b7d7b33c91 |
children | be2b895d31e0 |
line wrap: on
line diff
--- a/src/event/ngx_event_connect.h Sun Dec 03 13:48:49 2006 +0000 +++ b/src/event/ngx_event_connect.h Mon Dec 04 16:46:13 2006 +0000 @@ -13,27 +13,56 @@ #include <ngx_event.h> -typedef struct { - ngx_peers_t *peers; - ngx_uint_t cur_peer; - ngx_uint_t tries; +#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); + - ngx_connection_t *connection; -#if (NGX_THREADS) - ngx_atomic_t *lock; +struct ngx_peer_connection_s { + ngx_connection_t *connection; + + struct sockaddr *sockaddr; + socklen_t socklen; + ngx_str_t *name; + + ngx_uint_t tries; + + 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; #endif - int rcvbuf; +#if (NGX_THREADS) + ngx_atomic_t *lock; +#endif - ngx_log_t *log; + int rcvbuf; - unsigned cached:1; - unsigned log_error:2; /* ngx_connection_log_error_e */ -} ngx_peer_connection_t; + ngx_log_t *log; + + unsigned cached:1; + unsigned log_error:2; /* ngx_connection_log_error_e */ +}; ngx_int_t ngx_event_connect_peer(ngx_peer_connection_t *pc); -void ngx_event_connect_peer_failed(ngx_peer_connection_t *pc, ngx_uint_t down); +ngx_int_t ngx_event_get_peer(ngx_peer_connection_t *pc, void *data); + #endif /* _NGX_EVENT_CONNECT_H_INCLUDED_ */