Mercurial > hg > nginx-vendor-1-0
comparison src/os/unix/ngx_files.h @ 276:c5c2b2883984 NGINX_0_5_8
nginx 0.5.8
*) Bugfix: a segmentation fault might occur if
"client_body_in_file_only on" was used and a request body was small.
*) Bugfix: a segmentation fault occurred if
"client_body_in_file_only on" and "proxy_pass_request_body off" or
"fastcgi_pass_request_body off" directives were used, and nginx
switched to a next upstream.
*) Bugfix: if the "proxy_buffering off" directive was used and a client
connection was non-active, then the connection was closed after send
timeout; bug appeared in 0.4.7.
*) Bugfix: if the "epoll" method was used and a client closed a
connection prematurely, then nginx closed the connection after a
send timeout only.
*) Bugfix: the "[alert] zero size buf" error when FastCGI server was
used.
*) Bugfixes in the "limit_zone" directive.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Fri, 19 Jan 2007 00:00:00 +0300 |
parents | 7d7cee0d62e0 |
children | 675a39fd14cd |
comparison
equal
deleted
inserted
replaced
275:1779577cb845 | 276:c5c2b2883984 |
---|---|
15 #define NGX_INVALID_FILE -1 | 15 #define NGX_INVALID_FILE -1 |
16 #define NGX_FILE_ERROR -1 | 16 #define NGX_FILE_ERROR -1 |
17 | 17 |
18 | 18 |
19 | 19 |
20 #define ngx_open_file(name, access, create) \ | 20 #define ngx_open_file(name, mode, create, access) \ |
21 open((const char *) name, access|create, 0644) | 21 open((const char *) name, mode|create, access) |
22 #define ngx_open_file_n "open()" | 22 #define ngx_open_file_n "open()" |
23 | 23 |
24 #define NGX_FILE_RDONLY O_RDONLY | 24 #define NGX_FILE_RDONLY O_RDONLY |
25 #define NGX_FILE_WRONLY O_WRONLY | |
25 #define NGX_FILE_RDWR O_RDWR | 26 #define NGX_FILE_RDWR O_RDWR |
26 #define NGX_FILE_CREATE_OR_OPEN O_CREAT | 27 #define NGX_FILE_CREATE_OR_OPEN O_CREAT |
27 #define NGX_FILE_OPEN 0 | 28 #define NGX_FILE_OPEN 0 |
28 #define NGX_FILE_TRUNCATE O_TRUNC | 29 #define NGX_FILE_TRUNCATE O_TRUNC |
29 #define NGX_FILE_APPEND O_APPEND | 30 #define NGX_FILE_APPEND O_APPEND |
31 | |
32 #define NGX_FILE_DEFAULT_ACCESS 0644 | |
30 | 33 |
31 | 34 |
32 #define ngx_close_file close | 35 #define ngx_close_file close |
33 #define ngx_close_file_n "close()" | 36 #define ngx_close_file_n "close()" |
34 | 37 |
36 #define ngx_delete_file(name) unlink((const char *) name) | 39 #define ngx_delete_file(name) unlink((const char *) name) |
37 #define ngx_delete_file_n "unlink()" | 40 #define ngx_delete_file_n "unlink()" |
38 | 41 |
39 | 42 |
40 ngx_fd_t ngx_open_tempfile(u_char *name, ngx_uint_t persistent, | 43 ngx_fd_t ngx_open_tempfile(u_char *name, ngx_uint_t persistent, |
41 ngx_uint_t mode); | 44 ngx_uint_t access); |
42 #define ngx_open_tempfile_n "open()" | 45 #define ngx_open_tempfile_n "open()" |
43 | 46 |
44 | 47 |
45 ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset); | 48 ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset); |
46 #define ngx_read_file_n "read()" | 49 #define ngx_read_file_n "read()" |
50 | 53 |
51 ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce, | 54 ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce, |
52 off_t offset, ngx_pool_t *pool); | 55 off_t offset, ngx_pool_t *pool); |
53 | 56 |
54 | 57 |
58 #define ngx_read_fd read | |
59 #define ngx_read_fd_n "read()" | |
60 | |
55 #define ngx_write_fd write | 61 #define ngx_write_fd write |
62 #define ngx_write_fd_n "write()" | |
63 | |
56 #define ngx_linefeed(p) *p++ = LF; | 64 #define ngx_linefeed(p) *p++ = LF; |
57 #define NGX_LINEFEED_SIZE 1 | 65 #define NGX_LINEFEED_SIZE 1 |
58 | 66 |
59 | 67 |
60 #define ngx_rename_file(o, n) rename((const char *) o, (const char *) n) | 68 #define ngx_rename_file(o, n) rename((const char *) o, (const char *) n) |
77 | 85 |
78 #define ngx_is_dir(sb) (S_ISDIR((sb)->st_mode)) | 86 #define ngx_is_dir(sb) (S_ISDIR((sb)->st_mode)) |
79 #define ngx_is_file(sb) (S_ISREG((sb)->st_mode)) | 87 #define ngx_is_file(sb) (S_ISREG((sb)->st_mode)) |
80 #define ngx_is_link(sb) (S_ISLNK((sb)->st_mode)) | 88 #define ngx_is_link(sb) (S_ISLNK((sb)->st_mode)) |
81 #define ngx_is_exec(sb) ((sb)->st_mode & S_IXUSR) | 89 #define ngx_is_exec(sb) ((sb)->st_mode & S_IXUSR) |
90 #define ngx_file_access(sb) ((sb)->st_mode & 0777) | |
82 #define ngx_file_size(sb) (sb)->st_size | 91 #define ngx_file_size(sb) (sb)->st_size |
83 #define ngx_file_mtime(sb) (sb)->st_mtime | 92 #define ngx_file_mtime(sb) (sb)->st_mtime |
84 #define ngx_file_uniq(sb) (sb)->st_ino | 93 #define ngx_file_uniq(sb) (sb)->st_ino |
85 | 94 |
86 | 95 |
124 #define ngx_de_link_info(name, dir) lstat((const char *) name, &(dir)->info) | 133 #define ngx_de_link_info(name, dir) lstat((const char *) name, &(dir)->info) |
125 #define ngx_de_link_info_n "lstat()" | 134 #define ngx_de_link_info_n "lstat()" |
126 #define ngx_de_is_dir(dir) (S_ISDIR((dir)->info.st_mode)) | 135 #define ngx_de_is_dir(dir) (S_ISDIR((dir)->info.st_mode)) |
127 #define ngx_de_is_file(dir) (S_ISREG((dir)->info.st_mode)) | 136 #define ngx_de_is_file(dir) (S_ISREG((dir)->info.st_mode)) |
128 #define ngx_de_is_link(dir) (S_ISLNK((dir)->info.st_mode)) | 137 #define ngx_de_is_link(dir) (S_ISLNK((dir)->info.st_mode)) |
138 #define ngx_de_access(dir) (((dir)->info.st_mode) & 0777) | |
129 #define ngx_de_size(dir) (dir)->info.st_size | 139 #define ngx_de_size(dir) (dir)->info.st_size |
130 #define ngx_de_mtime(dir) (dir)->info.st_mtime | 140 #define ngx_de_mtime(dir) (dir)->info.st_mtime |
131 | 141 |
132 | 142 |
133 typedef struct { | 143 typedef struct { |