Mercurial > hg > nginx
comparison src/core/ngx_file.h @ 479:c52408583801 release-0.1.14
nginx-0.1.14-RELEASE import
*) 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; the bug had 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 <igor@sysoev.ru> |
---|---|
date | Tue, 18 Jan 2005 13:03:58 +0000 |
parents | bbd6b0b4a2b1 |
children | 975f62e77f02 |
comparison
equal
deleted
inserted
replaced
478:e6576f690993 | 479:c52408583801 |
---|---|
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_ */ |