comparison src/http/modules/ngx_http_access_handler.c @ 28:7ca9bdc82b3f NGINX_0_1_14

nginx 0.1.14 *) Feature: the autoconfiguration directives: --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH, and --http-fastcgi-temp-path=PATH *) Change: the directory name for the temporary files with the client request body is specified by directive client_body_temp_path, by default it is <prefix>/client_body_temp. *) Feature: the ngx_http_fastcgi_module and the directives: fastcgi_pass, fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers, fastcgi_busy_buffers_size, fastcgi_temp_path, fastcgi_max_temp_file_size, fastcgi_temp_file_write_size, fastcgi_next_upstream, and fastcgi_x_powered_by. *) Bugfix: the "[alert] zero size buf" error; bug appeared in 0.1.3. *) Change: the URI must be specified after the host name in the proxy_pass directive. *) Change: the %3F symbol in the URI was considered as the argument string start. *) Feature: the unix domain sockets support in the ngx_http_proxy_module. *) Feature: the ssl_engine and ssl_ciphers directives. Thanks to Sergey Skvortsov for SSL-accelerator.
author Igor Sysoev <http://sysoev.ru>
date Tue, 18 Jan 2005 00:00:00 +0300
parents 46833bd150cb
children aab2ea7c0458
comparison
equal deleted inserted replaced
27:66901c2556fd 28:7ca9bdc82b3f
78 78
79 79
80 static ngx_int_t ngx_http_access_handler(ngx_http_request_t *r) 80 static ngx_int_t ngx_http_access_handler(ngx_http_request_t *r)
81 { 81 {
82 ngx_uint_t i; 82 ngx_uint_t i;
83 struct sockaddr_in *addr_in; 83 struct sockaddr_in *sin;
84 ngx_http_access_rule_t *rule; 84 ngx_http_access_rule_t *rule;
85 ngx_http_access_loc_conf_t *alcf; 85 ngx_http_access_loc_conf_t *alcf;
86 86
87 alcf = ngx_http_get_module_loc_conf(r, ngx_http_access_module); 87 alcf = ngx_http_get_module_loc_conf(r, ngx_http_access_module);
88 88
90 return NGX_OK; 90 return NGX_OK;
91 } 91 }
92 92
93 /* AF_INET only */ 93 /* AF_INET only */
94 94
95 addr_in = (struct sockaddr_in *) r->connection->sockaddr; 95 sin = (struct sockaddr_in *) r->connection->sockaddr;
96 96
97 rule = alcf->rules->elts; 97 rule = alcf->rules->elts;
98 for (i = 0; i < alcf->rules->nelts; i++) { 98 for (i = 0; i < alcf->rules->nelts; i++) {
99 99
100 ngx_log_debug3(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, 100 ngx_log_debug3(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
101 "%08XD %08XD %08XD", 101 "%08XD %08XD %08XD",
102 addr_in->sin_addr.s_addr, rule[i].mask, rule[i].addr); 102 sin->sin_addr.s_addr, rule[i].mask, rule[i].addr);
103 103
104 if ((addr_in->sin_addr.s_addr & rule[i].mask) == rule[i].addr) { 104 if ((sin->sin_addr.s_addr & rule[i].mask) == rule[i].addr) {
105 if (rule[i].deny) { 105 if (rule[i].deny) {
106 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, 106 ngx_log_error(NGX_LOG_ERR, r->connection->log, 0,
107 "access forbidden by rule"); 107 "access forbidden by rule");
108 108
109 return NGX_HTTP_FORBIDDEN; 109 return NGX_HTTP_FORBIDDEN;