Mercurial > hg > nginx-vendor-0-8
comparison src/event/modules/ngx_eventport_module.c @ 364:a39aab45a53f NGINX_0_6_26
nginx 0.6.26
*) Bugfix: the "proxy_store" and "fastcgi_store" directives did not
check a response length.
*) Bugfix: a segmentation fault occurred in worker process, if big
value was used in a "expires" directive.
Thanks to Joaquin Cuenca Abela.
*) Bugfix: nginx incorrectly detected cache line size on Pentium 4.
Thanks to Gena Makhomed.
*) Bugfix: in proxied or FastCGI subrequests a client original method
was used instead of the GET method.
*) Bugfix: socket leak in HTTPS mode if deferred accept was used.
Thanks to Ben Maurer.
*) Bugfix: nginx issued the bogus error message "SSL_shutdown() failed
(SSL: )"; bug appeared in 0.6.23.
*) Bugfix: in HTTPS mode requests might fail with the "bad write retry"
error; bug appeared in 0.6.23.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 11 Feb 2008 00:00:00 +0300 |
parents | f7cd062ee035 |
children | 9a242235a80a |
comparison
equal
deleted
inserted
replaced
363:6999caedb665 | 364:a39aab45a53f |
---|---|
37 | 37 |
38 typedef struct port_notify { | 38 typedef struct port_notify { |
39 int portnfy_port; /* bind request(s) to port */ | 39 int portnfy_port; /* bind request(s) to port */ |
40 void *portnfy_user; /* user defined */ | 40 void *portnfy_user; /* user defined */ |
41 } port_notify_t; | 41 } port_notify_t; |
42 | |
43 typedef struct itimerspec { /* definition per POSIX.4 */ | |
44 struct timespec it_interval;/* timer period */ | |
45 struct timespec it_value; /* timer expiration */ | |
46 } itimerspec_t; | |
47 | 42 |
48 int port_create(void) | 43 int port_create(void) |
49 { | 44 { |
50 return -1; | 45 return -1; |
51 } | 46 } |
104 static char *ngx_eventport_init_conf(ngx_cycle_t *cycle, void *conf); | 99 static char *ngx_eventport_init_conf(ngx_cycle_t *cycle, void *conf); |
105 | 100 |
106 static int ep = -1; | 101 static int ep = -1; |
107 static port_event_t *event_list; | 102 static port_event_t *event_list; |
108 static ngx_uint_t nevents; | 103 static ngx_uint_t nevents; |
109 static timer_t event_timer = -1; | 104 static timer_t event_timer = (timer_t) -1; |
110 | 105 |
111 static ngx_str_t eventport_name = ngx_string("eventport"); | 106 static ngx_str_t eventport_name = ngx_string("eventport"); |
112 | 107 |
113 | 108 |
114 static ngx_command_t ngx_eventport_commands[] = { | 109 static ngx_command_t ngx_eventport_commands[] = { |
235 | 230 |
236 | 231 |
237 static void | 232 static void |
238 ngx_eventport_done(ngx_cycle_t *cycle) | 233 ngx_eventport_done(ngx_cycle_t *cycle) |
239 { | 234 { |
240 if (event_timer != -1) { | 235 if (event_timer != (timer_t) -1) { |
241 if (timer_delete(event_timer) == -1) { | 236 if (timer_delete(event_timer) == -1) { |
242 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, | 237 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, |
243 "timer_delete() failed"); | 238 "timer_delete() failed"); |
244 } | 239 } |
245 | 240 |
246 event_timer = -1; | 241 event_timer = (timer_t) -1; |
247 } | 242 } |
248 | 243 |
249 if (close(ep) == -1) { | 244 if (close(ep) == -1) { |
250 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, | 245 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, |
251 "close() event port failed"); | 246 "close() event port failed"); |