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");