comparison src/os/win32/ngx_process_cycle.c @ 509:9b8c906f6e63 release-0.1.29

nginx-0.1.29-RELEASE import *) Feature: the ngx_http_ssi_module supports "include virtual" command. *) Feature: the ngx_http_ssi_module supports the condition command like 'if expr="$NAME"' and "else" and "endif" commands. Only one nested level is supported. *) Feature: the ngx_http_ssi_module supports the DATE_LOCAL and DATE_GMT variables and "config timefmt" command. *) Feature: the "ssi_ignore_recycled_buffers" directive. *) Bugfix: the "echo" command did not show the default value for the empty QUERY_STRING variable. *) Change: the ngx_http_proxy_module was rewritten. *) Feature: the "proxy_redirect", "proxy_pass_request_headers", "proxy_pass_request_body", and "proxy_method" directives. *) Feature: the "proxy_set_header" directive. The "proxy_x_var" was canceled and must be replaced with the proxy_set_header directive. *) Change: the "proxy_preserve_host" is canceled and must be replaced with the "proxy_set_header Host $host" and the "proxy_redirect off" directives, the "proxy_set_header Host $host:$proxy_port" directive and the appropriate proxy_redirect directives. *) Change: the "proxy_set_x_real_ip" is canceled and must be replaced with the "proxy_set_header X-Real-IP $remote_addr" directive. *) Change: the "proxy_add_x_forwarded_for" is canceled and must be replaced with the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for" directive. *) Change: the "proxy_set_x_url" is canceled and must be replaced with the "proxy_set_header X-URL http://$host:$server_port$request_uri" directive. *) Feature: the "fastcgi_param" directive. *) Change: the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params" directive are canceled and must be replaced with the fastcgi_param directives. *) Feature: the "index" directive can use the variables. *) Feature: the "index" directive can be used at http and server levels. *) Change: the last index only in the "index" directive can be absolute. *) Feature: the "rewrite" directive can use the variables. *) Feature: the "internal" directive. *) Feature: the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR, SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME, REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables. *) Change: nginx now passes the invalid lines in a client request headers or a backend response header. *) Bugfix: if the backend did not transfer response for a long time and the "send_timeout" was less than "proxy_read_timeout", then nginx returned the 408 response. *) Bugfix: the segmentation fault was occurred if the backend sent an invalid line in response header; the bug had appeared in 0.1.26. *) Bugfix: the segmentation fault may occurred in FastCGI fault tolerance configuration. *) Bugfix: the "expires" directive did not remove the previous "Expires" and "Cache-Control" headers. *) Bugfix: nginx did not take into account trailing dot in "Host" header line. *) Bugfix: the ngx_http_auth_module did not work under Linux. *) Bugfix: the rewrite directive worked incorrectly, if the arguments were in a request. *) Bugfix: nginx could not be built on MacOS X.
author Igor Sysoev <igor@sysoev.ru>
date Thu, 12 May 2005 14:58:06 +0000
parents d4ea69372b94
children 9c2f3ed7a247
comparison
equal deleted inserted replaced
508:ca1020ce99ba 509:9b8c906f6e63
10 #include <nginx.h> 10 #include <nginx.h>
11 11
12 12
13 static void *ngx_worker_thread_cycle(void *data); 13 static void *ngx_worker_thread_cycle(void *data);
14 static long __stdcall ngx_window_procedure(HWND window, u_int message, 14 static long __stdcall ngx_window_procedure(HWND window, u_int message,
15 u_int wparam, long lparam); 15 u_int wparam, long lparam);
16 16
17 #if 0 17 #if 0
18 ngx_pid_t ngx_new_binary; 18 ngx_pid_t ngx_new_binary;
19 19
20 sig_atomic_t ngx_reap; 20 sig_atomic_t ngx_reap;
43 43
44 44
45 static HMENU ngx_menu; 45 static HMENU ngx_menu;
46 46
47 47
48 void ngx_master_process_cycle(ngx_cycle_t *cycle) 48 void
49 ngx_master_process_cycle(ngx_cycle_t *cycle)
49 { 50 {
50 ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, "master mode is not supported"); 51 ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, "master mode is not supported");
51 52
52 exit(2); 53 exit(2);
53 } 54 }
54 55
55 56
56 void ngx_single_process_cycle(ngx_cycle_t *cycle) 57 void
58 ngx_single_process_cycle(ngx_cycle_t *cycle)
57 { 59 {
58 int rc; 60 int rc;
59 ngx_int_t i; 61 ngx_int_t i;
60 ngx_err_t err; 62 ngx_err_t err;
61 ngx_tid_t tid; 63 ngx_tid_t tid;
163 exit(2); 165 exit(2);
164 } 166 }
165 167
166 168
167 if (ngx_system_tray_icon(window, NIM_ADD, tray, (u_char *) " nginx") 169 if (ngx_system_tray_icon(window, NIM_ADD, tray, (u_char *) " nginx")
168 == NGX_ERROR) 170 != NGX_OK)
169 { 171 {
170 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, 172 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno,
171 "Shell_NotifyIcon(NIM_ADD) failed"); 173 "Shell_NotifyIcon(NIM_ADD) failed");
172 /* fatal */ 174 /* fatal */
173 exit(2); 175 exit(2);
198 DispatchMessage(&message); 200 DispatchMessage(&message);
199 } 201 }
200 } 202 }
201 203
202 204
203 static void *ngx_worker_thread_cycle(void *data) 205 static void *
206 ngx_worker_thread_cycle(void *data)
204 { 207 {
205 ngx_cycle_t *cycle; 208 ngx_cycle_t *cycle;
206 209
207 cycle = (ngx_cycle_t *) ngx_cycle; 210 cycle = (ngx_cycle_t *) ngx_cycle;
208 211
214 217
215 return NULL; 218 return NULL;
216 } 219 }
217 220
218 221
219 static long __stdcall ngx_window_procedure(HWND window, u_int message, 222 static long __stdcall
220 u_int wparam, long lparam) 223 ngx_window_procedure(HWND window, u_int message, u_int wparam, long lparam)
221 { 224 {
222 POINT mouse; 225 POINT mouse;
223 226
224 switch (message) { 227 switch (message) {
225 228
249 return 0; 252 return 0;
250 253
251 case WM_COMMAND: 254 case WM_COMMAND:
252 if (wparam == NGX_WM_ABOUT) { 255 if (wparam == NGX_WM_ABOUT) {
253 ngx_message_box("nginx", MB_OK, 0, 256 ngx_message_box("nginx", MB_OK, 0,
254 NGINX_VER CRLF "(C) 2002-2004 Igor Sysoev"); 257 NGINX_VER CRLF "(C) 2002-2005 Igor Sysoev");
255 return 0; 258 return 0;
256 } 259 }
257 260
258 if (wparam == NGX_WM_EXIT) { 261 if (wparam == NGX_WM_EXIT) {
259 if (ngx_system_tray_icon(window, NIM_DELETE, NULL, NULL) 262 if (ngx_system_tray_icon(window, NIM_DELETE, NULL, NULL)
260 == NGX_ERROR) 263 != NGX_OK)
261 { 264 {
262 ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_errno, 265 ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_errno,
263 "Shell_NotifyIcon(NIM_DELETE) failed"); 266 "Shell_NotifyIcon(NIM_DELETE) failed");
264 } 267 }
265 } 268 }