comparison src/core/ngx_file.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 29a6403156b0
children 704622b2528a
comparison
equal deleted inserted replaced
275:1779577cb845 276:c5c2b2883984
47 off_t offset; 47 off_t offset;
48 ngx_path_t *path; 48 ngx_path_t *path;
49 ngx_pool_t *pool; 49 ngx_pool_t *pool;
50 char *warn; 50 char *warn;
51 51
52 ngx_uint_t mode; 52 ngx_uint_t access;
53 53
54 unsigned log_level:8; 54 unsigned log_level:8;
55 unsigned persistent:1; 55 unsigned persistent:1;
56 } ngx_temp_file_t; 56 } ngx_temp_file_t;
57 57
58 58
59 typedef struct ngx_tree_ctx_s ngx_tree_ctx_t; 59 typedef struct ngx_tree_ctx_s ngx_tree_ctx_t;
60 60
61 typedef ngx_int_t (*ngx_tree_init_handler_pt) (ngx_tree_ctx_t *ctx, 61 typedef ngx_int_t (*ngx_tree_init_handler_pt) (void *ctx, void *prev);
62 ngx_tree_ctx_t *prev);
63 typedef ngx_int_t (*ngx_tree_handler_pt) (ngx_tree_ctx_t *ctx, ngx_str_t *name); 62 typedef ngx_int_t (*ngx_tree_handler_pt) (ngx_tree_ctx_t *ctx, ngx_str_t *name);
64 63
65 struct ngx_tree_ctx_s { 64 struct ngx_tree_ctx_s {
65 off_t size;
66 ngx_uint_t access;
67 time_t mtime;
68
66 ngx_tree_init_handler_pt init_handler; 69 ngx_tree_init_handler_pt init_handler;
67 ngx_tree_handler_pt file_handler; 70 ngx_tree_handler_pt file_handler;
68 ngx_tree_handler_pt pre_tree_handler; 71 ngx_tree_handler_pt pre_tree_handler;
69 ngx_tree_handler_pt post_tree_handler; 72 ngx_tree_handler_pt post_tree_handler;
70 ngx_tree_handler_pt spec_handler; 73 ngx_tree_handler_pt spec_handler;
74
71 void *data; 75 void *data;
72 size_t size; 76 size_t alloc;
77
73 ngx_log_t *log; 78 ngx_log_t *log;
74 }; 79 };
75 80
76 81
77 ssize_t ngx_write_chain_to_temp_file(ngx_temp_file_t *tf, ngx_chain_t *chain); 82 ssize_t ngx_write_chain_to_temp_file(ngx_temp_file_t *tf, ngx_chain_t *chain);
78 ngx_int_t ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path, 83 ngx_int_t ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path,
79 ngx_pool_t *pool, ngx_uint_t persistent,ngx_uint_t mode); 84 ngx_pool_t *pool, ngx_uint_t persistent,ngx_uint_t access);
80 void ngx_create_hashed_filename(ngx_file_t *file, ngx_path_t *path); 85 void ngx_create_hashed_filename(ngx_file_t *file, ngx_path_t *path);
81 ngx_int_t ngx_create_path(ngx_file_t *file, ngx_path_t *path); 86 ngx_int_t ngx_create_path(ngx_file_t *file, ngx_path_t *path);
82 ngx_err_t ngx_create_full_path(u_char *dir, ngx_uint_t access); 87 ngx_err_t ngx_create_full_path(u_char *dir, ngx_uint_t access);
83 ngx_int_t ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot); 88 ngx_int_t ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot);
84 ngx_int_t ngx_create_pathes(ngx_cycle_t *cycle, ngx_uid_t user); 89 ngx_int_t ngx_create_pathes(ngx_cycle_t *cycle, ngx_uid_t user);