comparison src/os/unix/ngx_file_aio_read.c @ 554: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
comparison
equal deleted inserted replaced
553:8da5668048b4 554: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 }