Mercurial > hg > nginx-vendor-1-0
comparison src/os/unix/ngx_file_aio_read.c @ 542:2b9e388c61f1 NGINX_0_8_23
nginx 0.8.23
*) Security: now SSL/TLS renegotiation is disabled.
Thanks to Maxim Dounin.
*) Bugfix: listen unix domain socket did not inherit while online
upgrade.
*) Bugfix: the "unix:" parameter of the "set_real_ip_from" directive
did not without yet another directive with any IP address.
*) Bugfix: segmentation fault and infinite looping in resolver.
*) Bugfix: in resolver.
Thanks to Artem Bokhan.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 11 Nov 2009 00:00:00 +0300 |
parents | d41628eb4d0a |
children | 0d6525917227 |
comparison
equal
deleted
inserted
replaced
541:8da5668048b4 | 542:2b9e388c61f1 |
---|---|
37 | 37 |
38 ssize_t | 38 ssize_t |
39 ngx_file_aio_read(ngx_file_t *file, u_char *buf, size_t size, off_t offset, | 39 ngx_file_aio_read(ngx_file_t *file, u_char *buf, size_t size, off_t offset, |
40 ngx_pool_t *pool) | 40 ngx_pool_t *pool) |
41 { | 41 { |
42 int n; | 42 int n; |
43 ngx_event_t *ev; | 43 ngx_event_t *ev; |
44 ngx_event_aio_t *aio; | 44 ngx_event_aio_t *aio; |
45 static ngx_uint_t enosys = 0; | 45 |
46 | 46 if (!ngx_file_aio) { |
47 if (enosys) { | |
48 return ngx_read_file(file, buf, size, offset); | 47 return ngx_read_file(file, buf, size, offset); |
49 } | 48 } |
50 | 49 |
51 aio = file->aio; | 50 aio = file->aio; |
52 | 51 |
114 | 113 |
115 ngx_log_error(NGX_LOG_CRIT, file->log, n, | 114 ngx_log_error(NGX_LOG_CRIT, file->log, n, |
116 "aio_read(\"%V\") failed", &file->name); | 115 "aio_read(\"%V\") failed", &file->name); |
117 | 116 |
118 if (n == NGX_ENOSYS) { | 117 if (n == NGX_ENOSYS) { |
119 enosys = 1; | 118 ngx_file_aio = 0; |
120 return ngx_read_file(file, buf, size, offset); | 119 return ngx_read_file(file, buf, size, offset); |
121 } | 120 } |
122 | 121 |
123 return NGX_ERROR; | 122 return NGX_ERROR; |
124 } | 123 } |