comparison src/event/modules/ngx_aio_module.c @ 326:f70f2f565fe0 NGINX_0_5_33

nginx 0.5.33 *) Change: now by default the "echo" SSI command uses entity encoding. *) Feature: the "encoding" parameter in the "echo" SSI command. *) Change: mail proxy was split on three modules: pop3, imap and smtp. *) Feature: the --without-mail_pop3_module, --without-mail_imap_module, and --without-mail_smtp_module configuration parameters. *) Feature: the "smtp_greeting_delay" and "smtp_client_buffer" directives of the ngx_mail_smtp_module. *) Feature: the "server_name" and "valid_referers" directives support regular expressions. *) Feature: the "server_name", "map", and "valid_referers" directives support the "www.example.*" wildcards. *) Bugfix: sub_filter did not work with empty substitution. *) Bugfix: in sub_filter parsing. *) Bugfix: a worker process may got caught in an endless loop, if the memcached was used. *) Bugfix: nginx supported low case only "close" and "keep-alive" values in the "Connection" request header line; bug appeared in 0.5.32. *) Bugfix: nginx could not start on Solaris if the shared PCRE library located in non-standard place was used.
author Igor Sysoev <http://sysoev.ru>
date Wed, 07 Nov 2007 00:00:00 +0300
parents 052a7b1d40e5
children
comparison
equal deleted inserted replaced
325:5bb1b28ddeaa 326:f70f2f565fe0
14 #endif 14 #endif
15 15
16 16
17 static ngx_int_t ngx_aio_init(ngx_cycle_t *cycle, ngx_msec_t timer); 17 static ngx_int_t ngx_aio_init(ngx_cycle_t *cycle, ngx_msec_t timer);
18 static void ngx_aio_done(ngx_cycle_t *cycle); 18 static void ngx_aio_done(ngx_cycle_t *cycle);
19 static ngx_int_t ngx_aio_add_event(ngx_event_t *ev, int event, u_int flags); 19 static ngx_int_t ngx_aio_add_event(ngx_event_t *ev, ngx_int_t event,
20 static ngx_int_t ngx_aio_del_event(ngx_event_t *ev, int event, u_int flags); 20 ngx_uint_t flags);
21 static ngx_int_t ngx_aio_del_connection(ngx_connection_t *c, u_int flags); 21 static ngx_int_t ngx_aio_del_event(ngx_event_t *ev, ngx_int_t event,
22 ngx_uint_t flags);
23 static ngx_int_t ngx_aio_del_connection(ngx_connection_t *c, ngx_uint_t flags);
22 static ngx_int_t ngx_aio_process_events(ngx_cycle_t *cycle, ngx_msec_t timer, 24 static ngx_int_t ngx_aio_process_events(ngx_cycle_t *cycle, ngx_msec_t timer,
23 ngx_uint_t flags); 25 ngx_uint_t flags);
24 26
25 27
26 ngx_os_io_t ngx_os_aio = { 28 ngx_os_io_t ngx_os_aio = {
98 100
99 101
100 /* the event adding and deleting are needed for the listening sockets */ 102 /* the event adding and deleting are needed for the listening sockets */
101 103
102 static ngx_int_t 104 static ngx_int_t
103 ngx_aio_add_event(ngx_event_t *ev, int event, u_int flags) 105 ngx_aio_add_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags)
104 { 106 {
105 return ngx_kqueue_module_ctx.actions.add(ev, event, flags); 107 return ngx_kqueue_module_ctx.actions.add(ev, event, flags);
106 } 108 }
107 109
108 110
109 static ngx_int_t 111 static ngx_int_t
110 ngx_aio_del_event(ngx_event_t *ev, int event, u_int flags) 112 ngx_aio_del_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags)
111 { 113 {
112 return ngx_kqueue_module_ctx.actions.del(ev, event, flags); 114 return ngx_kqueue_module_ctx.actions.del(ev, event, flags);
113 } 115 }
114 116
115 117
116 static ngx_int_t 118 static ngx_int_t
117 ngx_aio_del_connection(ngx_connection_t *c, u_int flags) 119 ngx_aio_del_connection(ngx_connection_t *c, ngx_uint_t flags)
118 { 120 {
119 int rc; 121 int rc;
120 122
121 if (c->read->active == 0 && c->write->active == 0) { 123 if (c->read->active == 0 && c->write->active == 0) {
122 return NGX_OK; 124 return NGX_OK;