Mercurial > hg > nginx-quic
comparison src/http/ngx_http.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 | ad1e9ebf93bb |
children | 621229427cba |
comparison
equal
deleted
inserted
replaced
478:e6576f690993 | 479:c52408583801 |
---|---|
11 #include <ngx_config.h> | 11 #include <ngx_config.h> |
12 #include <ngx_core.h> | 12 #include <ngx_core.h> |
13 #include <ngx_garbage_collector.h> | 13 #include <ngx_garbage_collector.h> |
14 | 14 |
15 typedef struct ngx_http_request_s ngx_http_request_t; | 15 typedef struct ngx_http_request_s ngx_http_request_t; |
16 typedef struct ngx_http_log_ctx_s ngx_http_log_ctx_t; | |
16 typedef struct ngx_http_cleanup_s ngx_http_cleanup_t; | 17 typedef struct ngx_http_cleanup_s ngx_http_cleanup_t; |
17 typedef struct ngx_http_in_addr_s ngx_http_in_addr_t; | 18 typedef struct ngx_http_in_addr_s ngx_http_in_addr_t; |
18 | 19 |
19 #if (NGX_HTTP_CACHE) | 20 #if (NGX_HTTP_CACHE) |
20 #include <ngx_http_cache.h> | 21 #include <ngx_http_cache.h> |
21 #endif | 22 #endif |
22 /* STUB */ | 23 /* STUB */ |
23 #include <ngx_http_cache.h> | 24 #include <ngx_http_cache.h> |
24 | 25 |
26 #include <ngx_http_upstream.h> | |
25 #include <ngx_http_request.h> | 27 #include <ngx_http_request.h> |
26 #include <ngx_http_config.h> | 28 #include <ngx_http_config.h> |
27 #include <ngx_http_busy_lock.h> | 29 #include <ngx_http_busy_lock.h> |
28 #include <ngx_http_log_handler.h> | 30 #include <ngx_http_log_handler.h> |
29 #include <ngx_http_core_module.h> | 31 #include <ngx_http_core_module.h> |
31 #if (NGX_HTTP_SSL) | 33 #if (NGX_HTTP_SSL) |
32 #include <ngx_http_ssl_module.h> | 34 #include <ngx_http_ssl_module.h> |
33 #endif | 35 #endif |
34 | 36 |
35 | 37 |
36 typedef struct { | 38 struct ngx_http_log_ctx_s { |
37 u_int connection; | 39 ngx_uint_t connection; |
38 | 40 |
39 /* | 41 /* |
40 * we declare "action" as "char *" because the actions are usually | 42 * we declare "action" as "char *" because the actions are usually |
41 * the static strings and in the "u_char *" case we have to override | 43 * the static strings and in the "u_char *" case we have to override |
42 * all the time their types | 44 * all the time their types |
43 */ | 45 */ |
44 | 46 |
45 char *action; | 47 char *action; |
46 ngx_str_t *client; | 48 ngx_str_t *client; |
47 ngx_http_request_t *request; | 49 ngx_http_request_t *request; |
48 } ngx_http_log_ctx_t; | 50 }; |
49 | 51 |
50 | 52 |
51 #define ngx_http_get_module_ctx(r, module) r->ctx[module.ctx_index] | 53 #define ngx_http_get_module_ctx(r, module) r->ctx[module.ctx_index] |
52 #define ngx_http_get_module_err_ctx(r, module) \ | 54 #define ngx_http_get_module_err_ctx(r, module) \ |
53 (r->err_ctx ? r->err_ctx[module.ctx_index] : r->ctx[module.ctx_index]) | 55 (r->err_ctx ? r->err_ctx[module.ctx_index] : r->ctx[module.ctx_index]) |
54 | 56 |
57 /* STUB */ | |
55 #define ngx_http_create_ctx(r, cx, module, size, error) \ | 58 #define ngx_http_create_ctx(r, cx, module, size, error) \ |
56 do { \ | 59 do { \ |
57 ngx_test_null(cx, ngx_pcalloc(r->pool, size), error); \ | 60 ngx_test_null(cx, ngx_pcalloc(r->pool, size), error); \ |
58 r->ctx[module.ctx_index] = cx; \ | 61 r->ctx[module.ctx_index] = cx; \ |
59 } while (0) | 62 } while (0) |
63 /**/ | |
64 | |
65 #define ngx_http_set_ctx(r, c, module) \ | |
66 r->ctx[module.ctx_index] = c; | |
60 | 67 |
61 #define ngx_http_delete_ctx(r, module) \ | 68 #define ngx_http_delete_ctx(r, module) \ |
62 r->ctx[module.ctx_index] = NULL; | 69 r->ctx[module.ctx_index] = NULL; |
63 | 70 |
64 | 71 |
78 ngx_int_t ngx_http_send_last(ngx_http_request_t *r); | 85 ngx_int_t ngx_http_send_last(ngx_http_request_t *r); |
79 void ngx_http_close_request(ngx_http_request_t *r, int error); | 86 void ngx_http_close_request(ngx_http_request_t *r, int error); |
80 void ngx_http_close_connection(ngx_connection_t *c); | 87 void ngx_http_close_connection(ngx_connection_t *c); |
81 | 88 |
82 | 89 |
83 ngx_int_t ngx_http_read_client_request_body(ngx_http_request_t *r); | 90 ngx_int_t ngx_http_read_client_request_body(ngx_http_request_t *r, |
91 ngx_http_client_body_handler_pt post_handler); | |
84 | 92 |
85 ngx_int_t ngx_http_send_header(ngx_http_request_t *r); | 93 ngx_int_t ngx_http_send_header(ngx_http_request_t *r); |
86 ngx_int_t ngx_http_special_response_handler(ngx_http_request_t *r, int error); | 94 ngx_int_t ngx_http_special_response_handler(ngx_http_request_t *r, int error); |
87 | 95 |
88 | 96 |