Mercurial > hg > nginx-vendor-0-5
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; |