comparison src/stream/ngx_stream_handler.c @ 6175:8807a2369b1a

Stream: access module. stream { server { ... allow 127.0.0.1; deny all; } }
author Vladimir Homutov <vl@nginx.com>
date Thu, 04 Jun 2015 13:04:12 +0300
parents 187aa751ad62
children 0dcef374b8bb
comparison
equal deleted inserted replaced
6174:68c106e6fa0a 6175:8807a2369b1a
21 21
22 22
23 void 23 void
24 ngx_stream_init_connection(ngx_connection_t *c) 24 ngx_stream_init_connection(ngx_connection_t *c)
25 { 25 {
26 u_char text[NGX_SOCKADDR_STRLEN]; 26 u_char text[NGX_SOCKADDR_STRLEN];
27 size_t len; 27 size_t len;
28 ngx_uint_t i; 28 ngx_int_t rc;
29 struct sockaddr *sa; 29 ngx_uint_t i;
30 ngx_stream_port_t *port; 30 struct sockaddr *sa;
31 struct sockaddr_in *sin; 31 ngx_stream_port_t *port;
32 ngx_stream_in_addr_t *addr; 32 struct sockaddr_in *sin;
33 ngx_stream_session_t *s; 33 ngx_stream_in_addr_t *addr;
34 ngx_stream_addr_conf_t *addr_conf; 34 ngx_stream_session_t *s;
35 ngx_stream_addr_conf_t *addr_conf;
35 #if (NGX_HAVE_INET6) 36 #if (NGX_HAVE_INET6)
36 struct sockaddr_in6 *sin6; 37 struct sockaddr_in6 *sin6;
37 ngx_stream_in6_addr_t *addr6; 38 ngx_stream_in6_addr_t *addr6;
38 #endif 39 #endif
39 ngx_stream_core_srv_conf_t *cscf; 40 ngx_stream_core_srv_conf_t *cscf;
41 ngx_stream_core_main_conf_t *cmcf;
40 42
41 /* find the server configuration for the address:port */ 43 /* find the server configuration for the address:port */
42 44
43 port = c->listening->servers; 45 port = c->listening->servers;
44 46
141 c->log->handler = ngx_stream_log_error; 143 c->log->handler = ngx_stream_log_error;
142 c->log->data = s; 144 c->log->data = s;
143 c->log->action = "initializing connection"; 145 c->log->action = "initializing connection";
144 c->log_error = NGX_ERROR_INFO; 146 c->log_error = NGX_ERROR_INFO;
145 147
148 cmcf = ngx_stream_get_module_main_conf(s, ngx_stream_core_module);
149
150 if (cmcf->access_handler) {
151 rc = cmcf->access_handler(s);
152
153 if (rc != NGX_OK && rc != NGX_DECLINED) {
154 ngx_stream_close_connection(c);
155 return;
156 }
157 }
158
146 #if (NGX_STREAM_SSL) 159 #if (NGX_STREAM_SSL)
147 { 160 {
148 ngx_stream_ssl_conf_t *sslcf; 161 ngx_stream_ssl_conf_t *sslcf;
149 162
150 sslcf = ngx_stream_get_module_srv_conf(s, ngx_stream_ssl_module); 163 sslcf = ngx_stream_get_module_srv_conf(s, ngx_stream_ssl_module);