Mercurial > hg > nginx-vendor-current
annotate src/core/ngx_cycle.h @ 122:d25a1d6034f1 NGINX_0_3_8
nginx 0.3.8
*) Security: nginx now checks URI got from a backend in
"X-Accel-Redirect" header line or in SSI file for the "/../" paths
and zeroes.
*) Change: nginx now does not treat the empty user name in the
"Authorization" header line as valid one.
*) Feature: the "ssl_session_timeout" directives of the
ngx_http_ssl_module and ngx_imap_ssl_module.
*) Feature: the "auth_http_header" directive of the
ngx_imap_auth_http_module.
*) Feature: the "add_header" directive.
*) Feature: the ngx_http_realip_module.
*) Feature: the new variables to use in the "log_format" directive:
$bytes_sent, $apache_bytes_sent, $status, $time_gmt, $uri,
$request_time, $request_length, $upstream_status,
$upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
$connection, $pipe, and $msec. The parameters in the "%name" form
will be canceled soon.
*) Change: now the false variable values in the "if" directive are the
empty string "" and string starting with "0".
*) Bugfix: while using proxied or FastCGI-server nginx may leave
connections and temporary files with client requests in open state.
*) Bugfix: the worker processes did not flush the buffered logs on
graceful exit.
*) Bugfix: if the request URI was changes by the "rewrite" directive
and the request was proxied in location given by regular expression,
then the incorrect request was transferred to backend; bug appeared
in 0.2.6.
*) Bugfix: the "expires" directive did not remove the previous
"Expires" header.
*) Bugfix: nginx may stop to accept requests if the "rtsig" method and
several worker processes were used.
*) Bugfix: the "\"" and "\'" escape symbols were incorrectly handled in
SSI commands.
*) Bugfix: if the response was ended just after the SSI command and
gzipping was used, then the response did not transferred complete or
did not transferred at all.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 09 Nov 2005 00:00:00 +0300 |
parents | 408f195b3482 |
children | df17fbafec8f |
rev | line source |
---|---|
0 | 1 |
2 /* | |
3 * Copyright (C) Igor Sysoev | |
4 */ | |
5 | |
6 | |
7 #ifndef _NGX_CYCLE_H_INCLUDED_ | |
8 #define _NGX_CYCLE_H_INCLUDED_ | |
9 | |
10 | |
11 #include <ngx_config.h> | |
12 #include <ngx_core.h> | |
13 | |
14 | |
56 | 15 #ifndef NGX_CYCLE_POOL_SIZE |
16 #define NGX_CYCLE_POOL_SIZE 16384 | |
17 #endif | |
18 | |
19 | |
10 | 20 #define NGX_DEBUG_POINTS_STOP 1 |
21 #define NGX_DEBUG_POINTS_ABORT 2 | |
22 | |
23 | |
0 | 24 struct ngx_cycle_s { |
22 | 25 void ****conf_ctx; |
26 ngx_pool_t *pool; | |
0 | 27 |
22 | 28 ngx_log_t *log; |
29 ngx_log_t *new_log; | |
0 | 30 |
92 | 31 ngx_connection_t **files; |
32 ngx_connection_t *free_connections; | |
33 ngx_uint_t free_connection_n; | |
34 | |
22 | 35 ngx_array_t listening; |
36 ngx_array_t pathes; | |
37 ngx_list_t open_files; | |
0 | 38 |
22 | 39 ngx_uint_t connection_n; |
92 | 40 ngx_uint_t files_n; |
41 | |
110 | 42 ngx_connection_t *connections; |
43 ngx_event_t *read_events; | |
44 ngx_event_t *write_events; | |
0 | 45 |
22 | 46 ngx_cycle_t *old_cycle; |
0 | 47 |
22 | 48 ngx_str_t conf_file; |
49 ngx_str_t root; | |
0 | 50 }; |
51 | |
52 | |
53 typedef struct { | |
22 | 54 ngx_flag_t daemon; |
55 ngx_flag_t master; | |
0 | 56 |
112 | 57 ngx_msec_t timer_resolution; |
58 | |
22 | 59 ngx_int_t worker_processes; |
60 ngx_int_t debug_points; | |
0 | 61 |
92 | 62 ngx_int_t rlimit_nofile; |
63 ngx_int_t rlimit_sigpending; | |
64 | |
22 | 65 int priority; |
0 | 66 |
22 | 67 char *username; |
68 ngx_uid_t user; | |
69 ngx_gid_t group; | |
70 | |
70 | 71 ngx_str_t working_directory; |
72 | |
22 | 73 ngx_str_t pid; |
92 | 74 ngx_str_t oldpid; |
0 | 75 |
76 #if (NGX_THREADS) | |
22 | 77 ngx_int_t worker_threads; |
78 size_t thread_stack_size; | |
0 | 79 #endif |
80 | |
81 } ngx_core_conf_t; | |
82 | |
83 | |
84 typedef struct { | |
22 | 85 ngx_pool_t *pool; /* pcre's malloc() pool */ |
0 | 86 } ngx_core_tls_t; |
87 | |
88 | |
89 ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle); | |
90 ngx_int_t ngx_create_pidfile(ngx_cycle_t *cycle, ngx_cycle_t *old_cycle); | |
91 void ngx_delete_pidfile(ngx_cycle_t *cycle); | |
92 void ngx_reopen_files(ngx_cycle_t *cycle, ngx_uid_t user); | |
93 ngx_pid_t ngx_exec_new_binary(ngx_cycle_t *cycle, char *const *argv); | |
94 | |
95 | |
96 extern volatile ngx_cycle_t *ngx_cycle; | |
97 extern ngx_array_t ngx_old_cycles; | |
98 extern ngx_module_t ngx_core_module; | |
99 extern ngx_uint_t ngx_test_config; | |
100 #if (NGX_THREADS) | |
101 extern ngx_tls_key_t ngx_core_tls_key; | |
102 #endif | |
103 | |
104 | |
105 #endif /* _NGX_CYCLE_H_INCLUDED_ */ |