0
|
1
|
|
2 /*
|
|
3 * Copyright (C) Igor Sysoev
|
|
4 */
|
|
5
|
|
6
|
|
7 #ifndef _NGX_INET_H_INCLUDED_
|
|
8 #define _NGX_INET_H_INCLUDED_
|
|
9
|
|
10
|
28
|
11 #include <ngx_config.h>
|
|
12 #include <ngx_core.h>
|
|
13
|
|
14
|
200
|
15 #define NGX_PARSE_URL_INET 1
|
|
16 #define NGX_PARSE_URL_UNIX 2
|
|
17
|
|
18
|
0
|
19 typedef struct {
|
|
20 in_addr_t addr;
|
|
21 in_addr_t mask;
|
|
22 } ngx_inet_cidr_t;
|
|
23
|
|
24
|
28
|
25 typedef struct {
|
200
|
26 struct sockaddr *sockaddr;
|
|
27 socklen_t socklen;
|
|
28
|
|
29 ngx_str_t name;
|
|
30 char *uri_separator;
|
|
31
|
|
32 ngx_uint_t weight;
|
|
33
|
|
34 ngx_uint_t fails;
|
|
35 time_t accessed;
|
|
36
|
|
37 ngx_uint_t max_fails;
|
|
38 time_t fail_timeout;
|
|
39
|
|
40 #if (NGX_SSL)
|
|
41 ngx_ssl_session_t *ssl_session;
|
|
42 #endif
|
|
43 } ngx_peer_t;
|
|
44
|
|
45
|
|
46 struct ngx_peers_s {
|
|
47 ngx_uint_t current;
|
|
48 ngx_uint_t weight;
|
|
49
|
|
50 ngx_uint_t number;
|
|
51 ngx_uint_t last_cached;
|
|
52
|
|
53 /* ngx_mutex_t *mutex; */
|
|
54 ngx_connection_t **cached;
|
|
55
|
|
56 ngx_peer_t peer[1];
|
|
57 };
|
|
58
|
|
59
|
|
60 typedef struct {
|
|
61 ngx_int_t type;
|
|
62
|
|
63 ngx_peers_t *peers;
|
|
64
|
|
65 ngx_str_t url;
|
|
66 ngx_str_t host;
|
|
67 ngx_str_t host_header;
|
|
68 ngx_str_t port;
|
|
69 ngx_str_t uri;
|
|
70
|
|
71 in_port_t portn;
|
|
72 in_port_t default_portn;
|
|
73
|
|
74 unsigned listen:1;
|
|
75 unsigned uri_part:1;
|
|
76 unsigned upstream:1;
|
|
77
|
|
78 unsigned default_port:1;
|
|
79 unsigned wildcard:1;
|
|
80
|
|
81 char *err;
|
|
82 } ngx_url_t;
|
|
83
|
|
84
|
|
85 typedef struct {
|
28
|
86 ngx_str_t name; /* "schema:host:port/uri" */
|
|
87 ngx_str_t url; /* "host:port/uri" */
|
|
88 ngx_str_t host;
|
|
89 ngx_str_t uri;
|
|
90 ngx_str_t host_header; /* "host:port" */
|
|
91 ngx_str_t port_text; /* "port" */
|
|
92
|
|
93 in_port_t port;
|
|
94
|
|
95 in_port_t default_port_value;
|
|
96
|
|
97 unsigned default_port:1;
|
|
98 unsigned wildcard:1;
|
|
99
|
|
100 unsigned uri_part:1;
|
|
101 unsigned port_only:1;
|
200
|
102 unsigned virtual:1;
|
28
|
103 } ngx_inet_upstream_t;
|
|
104
|
|
105
|
|
106 size_t ngx_sock_ntop(int family, struct sockaddr *sa, u_char *text,
|
0
|
107 size_t len);
|
|
108 size_t ngx_inet_ntop(int family, void *addr, u_char *text, size_t len);
|
|
109
|
|
110 ngx_int_t ngx_ptocidr(ngx_str_t *text, void *cidr);
|
|
111
|
28
|
112 ngx_peers_t *ngx_inet_upstream_parse(ngx_conf_t *cf, ngx_inet_upstream_t *u);
|
200
|
113 ngx_peers_t *ngx_inet_resolve_peer(ngx_conf_t *cf, ngx_str_t *name,
|
|
114 in_port_t port);
|
28
|
115 char *ngx_inet_parse_host_port(ngx_inet_upstream_t *u);
|
200
|
116 ngx_int_t ngx_parse_url(ngx_conf_t *cf, ngx_url_t *u);
|
28
|
117
|
0
|
118
|
|
119 #endif /* _NGX_INET_H_INCLUDED_ */
|