comparison src/core/ngx_file.h @ 28:7ca9bdc82b3f NGINX_0_1_14

nginx 0.1.14 *) Feature: the autoconfiguration directives: --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH, and --http-fastcgi-temp-path=PATH *) Change: the directory name for the temporary files with the client request body is specified by directive client_body_temp_path, by default it is <prefix>/client_body_temp. *) Feature: the ngx_http_fastcgi_module and the directives: fastcgi_pass, fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers, fastcgi_busy_buffers_size, fastcgi_temp_path, fastcgi_max_temp_file_size, fastcgi_temp_file_write_size, fastcgi_next_upstream, and fastcgi_x_powered_by. *) Bugfix: the "[alert] zero size buf" error; bug appeared in 0.1.3. *) Change: the URI must be specified after the host name in the proxy_pass directive. *) Change: the %3F symbol in the URI was considered as the argument string start. *) Feature: the unix domain sockets support in the ngx_http_proxy_module. *) Feature: the ssl_engine and ssl_ciphers directives. Thanks to Sergey Skvortsov for SSL-accelerator.
author Igor Sysoev <http://sysoev.ru>
date Tue, 18 Jan 2005 00:00:00 +0300
parents 74b1868dd3cd
children 41ccba1aba45
comparison
equal deleted inserted replaced
27:66901c2556fd 28:7ca9bdc82b3f
33 33
34 struct ngx_path_s { 34 struct ngx_path_s {
35 ngx_str_t name; 35 ngx_str_t name;
36 ngx_uint_t len; 36 ngx_uint_t len;
37 ngx_uint_t level[3]; 37 ngx_uint_t level[3];
38 ngx_gc_handler_pt gc_handler; 38 ngx_gc_handler_pt cleaner;
39 39
40 u_char *conf_file; 40 u_char *conf_file;
41 ngx_uint_t line; 41 ngx_uint_t line;
42 }; 42 };
43 43
56 ssize_t ngx_write_chain_to_temp_file(ngx_temp_file_t *tf, ngx_chain_t *chain); 56 ssize_t ngx_write_chain_to_temp_file(ngx_temp_file_t *tf, ngx_chain_t *chain);
57 ngx_int_t ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path, 57 ngx_int_t ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path,
58 ngx_pool_t *pool, int persistent); 58 ngx_pool_t *pool, int persistent);
59 void ngx_create_hashed_filename(ngx_file_t *file, ngx_path_t *path); 59 void ngx_create_hashed_filename(ngx_file_t *file, ngx_path_t *path);
60 ngx_int_t ngx_create_path(ngx_file_t *file, ngx_path_t *path); 60 ngx_int_t ngx_create_path(ngx_file_t *file, ngx_path_t *path);
61 ngx_int_t ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot);
61 ngx_int_t ngx_create_pathes(ngx_cycle_t *cycle, ngx_uid_t user); 62 ngx_int_t ngx_create_pathes(ngx_cycle_t *cycle, ngx_uid_t user);
62 63
63 void ngx_init_temp_number(); 64 void ngx_init_temp_number();
64 ngx_uint_t ngx_next_temp_number(ngx_uint_t collision); 65 ngx_uint_t ngx_next_temp_number(ngx_uint_t collision);
65 66
66 char *ngx_conf_set_path_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); 67 char *ngx_conf_set_path_slot(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
67 68
68 69
69 #define ngx_conf_merge_path_value(conf, prev, path, l1, l2, l3, pool) \ 70 #define ngx_conf_merge_path_value(curr, prev, path, l1, l2, l3, clean, cf) \
70 if (conf == NULL) { \ 71 if (curr == NULL) { \
71 if (prev == NULL) { \ 72 if (prev == NULL) { \
72 ngx_test_null(conf, ngx_palloc(pool, sizeof(ngx_path_t)), NULL); \ 73 if (!(curr = ngx_palloc(cf->pool, sizeof(ngx_path_t)))) { \
73 conf->name.len = sizeof(path) - 1; \ 74 return NGX_CONF_ERROR; \
74 conf->name.data = (u_char *) path; \ 75 } \
75 conf->level[0] = l1; \ 76 \
76 conf->level[1] = l2; \ 77 curr->name.len = sizeof(path) - 1; \
77 conf->level[2] = l3; \ 78 curr->name.data = (u_char *) path; \
78 conf->len = l1 + l2 + l3 + (l1 ? 1:0) + (l2 ? 1:0) + (l3 ? 1:0); \ 79 \
79 } else { \ 80 if (ngx_conf_full_name(cf->cycle, &curr->name) == NGX_ERROR) { \
80 conf = prev; \ 81 return NGX_CONF_ERROR; \
81 } \ 82 } \
83 \
84 curr->level[0] = l1; \
85 curr->level[1] = l2; \
86 curr->level[2] = l3; \
87 curr->len = l1 + l2 + l3 + (l1 ? 1:0) + (l2 ? 1:0) + (l3 ? 1:0); \
88 curr->cleaner = clean; \
89 curr->conf_file = NULL; \
90 \
91 if (ngx_add_path(cf, &curr) == NGX_ERROR) { \
92 return NGX_CONF_ERROR; \
93 } \
94 \
95 } else { \
96 curr = prev; \
97 } \
82 } 98 }
83 99
84 100
85 101
86 #endif /* _NGX_FILE_H_INCLUDED_ */ 102 #endif /* _NGX_FILE_H_INCLUDED_ */