1
2 /*
3 * Copyright (C) Igor Sysoev
4 */
5
6
7 #ifndef _NGX_EVENT_CONNECT_H_INCLUDED_
8 #define _NGX_EVENT_CONNECT_H_INCLUDED_
9
10
11 #include <ngx_config.h>
12 #include <ngx_core.h>
13 #include <ngx_event.h>
14
15
16 #define NGX_PEER_KEEPALIVE 1
17 #define NGX_PEER_NEXT 2
18 #define NGX_PEER_FAILED 4
19
20
21 typedef struct ngx_peer_connection_s ngx_peer_connection_t;
22
23 typedef ngx_int_t (*ngx_event_get_peer_pt)(ngx_peer_connection_t *pc,
24 void *data);
25 typedef void (*ngx_event_free_peer_pt)(ngx_peer_connection_t *pc, void *data,
26 ngx_uint_t state);
27 #if (NGX_SSL)
28
29 typedef ngx_int_t (*ngx_event_set_peer_session_pt)(ngx_peer_connection_t *pc,
30 void *data);
31 typedef void (*ngx_event_save_peer_session_pt)(ngx_peer_connection_t *pc,
32 void *data);
33 #endif
34
35
36 struct ngx_peer_connection_s {
37 ngx_connection_t *connection;
38
39 struct sockaddr *sockaddr;
40 socklen_t socklen;
41 ngx_str_t *name;
42
43 ngx_uint_t tries;
44
45 ngx_event_get_peer_pt get;
46 ngx_event_free_peer_pt free;
47 void *data;
48
49 #if (NGX_SSL)
50 ngx_event_set_peer_session_pt set_session;
51 ngx_event_save_peer_session_pt save_session;
52 #endif
53
54 #if (NGX_THREADS)
55 ngx_atomic_t *lock;
56 #endif
57
58 int rcvbuf;
59
60 ngx_log_t *log;
61
62 unsigned cached:1;
63
64 /* ngx_connection_log_error_e */
65 unsigned log_error:2;
66 };
67
68
69 ngx_int_t ngx_event_connect_peer(ngx_peer_connection_t *pc);
70 ngx_int_t ngx_event_get_peer(ngx_peer_connection_t *pc, void *data);
71
72
73
74 #endif /* _NGX_EVENT_CONNECT_H_INCLUDED_ */
75
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.