annotate src/http/ngx_http_spdy_module.c @ 6075:7fcfe113827d stable-1.6

Fixed possible buffer overrun in "too long header line" logging. Additionally, ellipsis now always added to make it clear that the header logged is incomplete. Reported by Daniil Bondarev.
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 08 Oct 2014 17:16:04 +0400
parents 02ee639d18a8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
1
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
2 /*
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
3 * Copyright (C) Nginx, Inc.
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
4 * Copyright (C) Valentin V. Bartenev
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
5 */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
6
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
7
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
8 #include <ngx_config.h>
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
9 #include <ngx_core.h>
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
10 #include <ngx_http.h>
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
11 #include <ngx_http_spdy_module.h>
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
12
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
13
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
14 static ngx_int_t ngx_http_spdy_add_variables(ngx_conf_t *cf);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
15
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
16 static ngx_int_t ngx_http_spdy_variable(ngx_http_request_t *r,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
17 ngx_http_variable_value_t *v, uintptr_t data);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
18 static ngx_int_t ngx_http_spdy_request_priority_variable(ngx_http_request_t *r,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
19 ngx_http_variable_value_t *v, uintptr_t data);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
20
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
21 static ngx_int_t ngx_http_spdy_module_init(ngx_cycle_t *cycle);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
22
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
23 static void *ngx_http_spdy_create_main_conf(ngx_conf_t *cf);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
24 static char *ngx_http_spdy_init_main_conf(ngx_conf_t *cf, void *conf);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
25 static void *ngx_http_spdy_create_srv_conf(ngx_conf_t *cf);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
26 static char *ngx_http_spdy_merge_srv_conf(ngx_conf_t *cf, void *parent,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
27 void *child);
5515
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
28 static void *ngx_http_spdy_create_loc_conf(ngx_conf_t *cf);
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
29 static char *ngx_http_spdy_merge_loc_conf(ngx_conf_t *cf, void *parent,
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
30 void *child);
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
31
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
32 static char *ngx_http_spdy_recv_buffer_size(ngx_conf_t *cf, void *post,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
33 void *data);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
34 static char *ngx_http_spdy_pool_size(ngx_conf_t *cf, void *post, void *data);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
35 static char *ngx_http_spdy_streams_index_mask(ngx_conf_t *cf, void *post,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
36 void *data);
5515
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
37 static char *ngx_http_spdy_chunk_size(ngx_conf_t *cf, void *post, void *data);
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
38
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
39
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
40 static ngx_conf_num_bounds_t ngx_http_spdy_headers_comp_bounds = {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
41 ngx_conf_check_num_bounds, 0, 9
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
42 };
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
43
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
44 static ngx_conf_post_t ngx_http_spdy_recv_buffer_size_post =
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
45 { ngx_http_spdy_recv_buffer_size };
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
46 static ngx_conf_post_t ngx_http_spdy_pool_size_post =
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
47 { ngx_http_spdy_pool_size };
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
48 static ngx_conf_post_t ngx_http_spdy_streams_index_mask_post =
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
49 { ngx_http_spdy_streams_index_mask };
5515
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
50 static ngx_conf_post_t ngx_http_spdy_chunk_size_post =
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
51 { ngx_http_spdy_chunk_size };
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
52
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
53
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
54 static ngx_command_t ngx_http_spdy_commands[] = {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
55
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
56 { ngx_string("spdy_recv_buffer_size"),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
57 NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
58 ngx_conf_set_size_slot,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
59 NGX_HTTP_MAIN_CONF_OFFSET,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
60 offsetof(ngx_http_spdy_main_conf_t, recv_buffer_size),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
61 &ngx_http_spdy_recv_buffer_size_post },
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
62
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
63 { ngx_string("spdy_pool_size"),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
64 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
65 ngx_conf_set_size_slot,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
66 NGX_HTTP_SRV_CONF_OFFSET,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
67 offsetof(ngx_http_spdy_srv_conf_t, pool_size),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
68 &ngx_http_spdy_pool_size_post },
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
69
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
70 { ngx_string("spdy_max_concurrent_streams"),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
71 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
72 ngx_conf_set_num_slot,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
73 NGX_HTTP_SRV_CONF_OFFSET,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
74 offsetof(ngx_http_spdy_srv_conf_t, concurrent_streams),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
75 NULL },
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
76
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
77 { ngx_string("spdy_streams_index_size"),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
78 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
79 ngx_conf_set_num_slot,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
80 NGX_HTTP_SRV_CONF_OFFSET,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
81 offsetof(ngx_http_spdy_srv_conf_t, streams_index_mask),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
82 &ngx_http_spdy_streams_index_mask_post },
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
83
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
84 { ngx_string("spdy_recv_timeout"),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
85 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
86 ngx_conf_set_msec_slot,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
87 NGX_HTTP_SRV_CONF_OFFSET,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
88 offsetof(ngx_http_spdy_srv_conf_t, recv_timeout),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
89 NULL },
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
90
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
91 { ngx_string("spdy_keepalive_timeout"),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
92 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
93 ngx_conf_set_msec_slot,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
94 NGX_HTTP_SRV_CONF_OFFSET,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
95 offsetof(ngx_http_spdy_srv_conf_t, keepalive_timeout),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
96 NULL },
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
97
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
98 { ngx_string("spdy_headers_comp"),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
99 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
100 ngx_conf_set_num_slot,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
101 NGX_HTTP_SRV_CONF_OFFSET,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
102 offsetof(ngx_http_spdy_srv_conf_t, headers_comp),
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
103 &ngx_http_spdy_headers_comp_bounds },
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
104
5515
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
105 { ngx_string("spdy_chunk_size"),
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
106 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
107 ngx_conf_set_size_slot,
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
108 NGX_HTTP_LOC_CONF_OFFSET,
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
109 offsetof(ngx_http_spdy_loc_conf_t, chunk_size),
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
110 &ngx_http_spdy_chunk_size_post },
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
111
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
112 ngx_null_command
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
113 };
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
114
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
115
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
116 static ngx_http_module_t ngx_http_spdy_module_ctx = {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
117 ngx_http_spdy_add_variables, /* preconfiguration */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
118 NULL, /* postconfiguration */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
119
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
120 ngx_http_spdy_create_main_conf, /* create main configuration */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
121 ngx_http_spdy_init_main_conf, /* init main configuration */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
122
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
123 ngx_http_spdy_create_srv_conf, /* create server configuration */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
124 ngx_http_spdy_merge_srv_conf, /* merge server configuration */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
125
5515
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
126 ngx_http_spdy_create_loc_conf, /* create location configuration */
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
127 ngx_http_spdy_merge_loc_conf /* merge location configuration */
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
128 };
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
129
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
130
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
131 ngx_module_t ngx_http_spdy_module = {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
132 NGX_MODULE_V1,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
133 &ngx_http_spdy_module_ctx, /* module context */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
134 ngx_http_spdy_commands, /* module directives */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
135 NGX_HTTP_MODULE, /* module type */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
136 NULL, /* init master */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
137 ngx_http_spdy_module_init, /* init module */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
138 NULL, /* init process */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
139 NULL, /* init thread */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
140 NULL, /* exit thread */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
141 NULL, /* exit process */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
142 NULL, /* exit master */
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
143 NGX_MODULE_V1_PADDING
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
144 };
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
145
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
146
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
147 static ngx_http_variable_t ngx_http_spdy_vars[] = {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
148
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
149 { ngx_string("spdy"), NULL,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
150 ngx_http_spdy_variable, 0, 0, 0 },
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
151
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
152 { ngx_string("spdy_request_priority"), NULL,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
153 ngx_http_spdy_request_priority_variable, 0, 0, 0 },
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
154
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
155 { ngx_null_string, NULL, NULL, 0, 0, 0 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
156 };
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
157
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
158
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
159 static ngx_int_t
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
160 ngx_http_spdy_add_variables(ngx_conf_t *cf)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
161 {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
162 ngx_http_variable_t *var, *v;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
163
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
164 for (v = ngx_http_spdy_vars; v->name.len; v++) {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
165 var = ngx_http_add_variable(cf, &v->name, v->flags);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
166 if (var == NULL) {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
167 return NGX_ERROR;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
168 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
169
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
170 var->get_handler = v->get_handler;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
171 var->data = v->data;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
172 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
173
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
174 return NGX_OK;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
175 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
176
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
177
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
178 static ngx_int_t
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
179 ngx_http_spdy_variable(ngx_http_request_t *r,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
180 ngx_http_variable_value_t *v, uintptr_t data)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
181 {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
182 if (r->spdy_stream) {
5549
39d7eef2e332 SPDY: protocol implementation switched to spdy/3.1.
Valentin Bartenev <vbart@nginx.com>
parents: 5515
diff changeset
183 v->len = sizeof("3.1") - 1;
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
184 v->valid = 1;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
185 v->no_cacheable = 0;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
186 v->not_found = 0;
5549
39d7eef2e332 SPDY: protocol implementation switched to spdy/3.1.
Valentin Bartenev <vbart@nginx.com>
parents: 5515
diff changeset
187 v->data = (u_char *) "3.1";
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
188
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
189 return NGX_OK;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
190 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
191
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
192 *v = ngx_http_variable_null_value;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
193
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
194 return NGX_OK;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
195 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
196
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
197
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
198 static ngx_int_t
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
199 ngx_http_spdy_request_priority_variable(ngx_http_request_t *r,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
200 ngx_http_variable_value_t *v, uintptr_t data)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
201 {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
202 if (r->spdy_stream) {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
203 v->len = 1;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
204 v->valid = 1;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
205 v->no_cacheable = 0;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
206 v->not_found = 0;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
207
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
208 v->data = ngx_pnalloc(r->pool, 1);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
209 if (v->data == NULL) {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
210 return NGX_ERROR;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
211 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
212
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
213 v->data[0] = '0' + (u_char) r->spdy_stream->priority;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
214
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
215 return NGX_OK;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
216 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
217
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
218 *v = ngx_http_variable_null_value;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
219
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
220 return NGX_OK;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
221 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
222
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
223
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
224 static ngx_int_t
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
225 ngx_http_spdy_module_init(ngx_cycle_t *cycle)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
226 {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
227 ngx_http_spdy_request_headers_init();
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
228
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
229 return NGX_OK;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
230 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
231
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
232
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
233 static void *
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
234 ngx_http_spdy_create_main_conf(ngx_conf_t *cf)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
235 {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
236 ngx_http_spdy_main_conf_t *smcf;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
237
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
238 smcf = ngx_pcalloc(cf->pool, sizeof(ngx_http_spdy_main_conf_t));
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
239 if (smcf == NULL) {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
240 return NULL;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
241 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
242
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
243 smcf->recv_buffer_size = NGX_CONF_UNSET_SIZE;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
244
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
245 return smcf;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
246 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
247
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
248
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
249 static char *
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
250 ngx_http_spdy_init_main_conf(ngx_conf_t *cf, void *conf)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
251 {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
252 ngx_http_spdy_main_conf_t *smcf = conf;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
253
5615
02ee639d18a8 SPDY: macro used for recv_buffer_size initialization.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5549
diff changeset
254 ngx_conf_init_size_value(smcf->recv_buffer_size, 256 * 1024);
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
255
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
256 return NGX_CONF_OK;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
257 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
258
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
259
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
260 static void *
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
261 ngx_http_spdy_create_srv_conf(ngx_conf_t *cf)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
262 {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
263 ngx_http_spdy_srv_conf_t *sscf;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
264
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
265 sscf = ngx_pcalloc(cf->pool, sizeof(ngx_http_spdy_srv_conf_t));
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
266 if (sscf == NULL) {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
267 return NULL;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
268 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
269
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
270 sscf->pool_size = NGX_CONF_UNSET_SIZE;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
271
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
272 sscf->concurrent_streams = NGX_CONF_UNSET_UINT;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
273 sscf->streams_index_mask = NGX_CONF_UNSET_UINT;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
274
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
275 sscf->recv_timeout = NGX_CONF_UNSET_MSEC;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
276 sscf->keepalive_timeout = NGX_CONF_UNSET_MSEC;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
277
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
278 sscf->headers_comp = NGX_CONF_UNSET;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
279
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
280 return sscf;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
281 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
282
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
283
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
284 static char *
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
285 ngx_http_spdy_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
286 {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
287 ngx_http_spdy_srv_conf_t *prev = parent;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
288 ngx_http_spdy_srv_conf_t *conf = child;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
289
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
290 ngx_conf_merge_size_value(conf->pool_size, prev->pool_size, 4096);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
291
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
292 ngx_conf_merge_uint_value(conf->concurrent_streams,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
293 prev->concurrent_streams, 100);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
294
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
295 ngx_conf_merge_uint_value(conf->streams_index_mask,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
296 prev->streams_index_mask, 32 - 1);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
297
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
298 ngx_conf_merge_msec_value(conf->recv_timeout,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
299 prev->recv_timeout, 30000);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
300 ngx_conf_merge_msec_value(conf->keepalive_timeout,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
301 prev->keepalive_timeout, 180000);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
302
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
303 ngx_conf_merge_value(conf->headers_comp, prev->headers_comp, 0);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
304
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
305 return NGX_CONF_OK;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
306 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
307
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
308
5515
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
309 static void *
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
310 ngx_http_spdy_create_loc_conf(ngx_conf_t *cf)
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
311 {
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
312 ngx_http_spdy_loc_conf_t *slcf;
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
313
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
314 slcf = ngx_pcalloc(cf->pool, sizeof(ngx_http_spdy_loc_conf_t));
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
315 if (slcf == NULL) {
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
316 return NULL;
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
317 }
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
318
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
319 slcf->chunk_size = NGX_CONF_UNSET_SIZE;
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
320
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
321 return slcf;
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
322 }
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
323
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
324
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
325 static char *
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
326 ngx_http_spdy_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
327 {
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
328 ngx_http_spdy_loc_conf_t *prev = parent;
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
329 ngx_http_spdy_loc_conf_t *conf = child;
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
330
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
331 ngx_conf_merge_size_value(conf->chunk_size, prev->chunk_size, 8 * 1024);
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
332
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
333 return NGX_CONF_OK;
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
334 }
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
335
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
336
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
337 static char *
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
338 ngx_http_spdy_recv_buffer_size(ngx_conf_t *cf, void *post, void *data)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
339 {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
340 size_t *sp = data;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
341
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
342 if (*sp <= 2 * NGX_SPDY_STATE_BUFFER_SIZE) {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
343 return "value is too small";
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
344 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
345
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
346 return NGX_CONF_OK;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
347 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
348
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
349
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
350 static char *
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
351 ngx_http_spdy_pool_size(ngx_conf_t *cf, void *post, void *data)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
352 {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
353 size_t *sp = data;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
354
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
355 if (*sp < NGX_MIN_POOL_SIZE) {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
356 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
357 "the pool size must be no less than %uz",
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
358 NGX_MIN_POOL_SIZE);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
359 return NGX_CONF_ERROR;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
360 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
361
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
362 if (*sp % NGX_POOL_ALIGNMENT) {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
363 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
364 "the pool size must be a multiple of %uz",
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
365 NGX_POOL_ALIGNMENT);
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
366 return NGX_CONF_ERROR;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
367 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
368
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
369 return NGX_CONF_OK;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
370 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
371
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
372
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
373 static char *
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
374 ngx_http_spdy_streams_index_mask(ngx_conf_t *cf, void *post, void *data)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
375 {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
376 ngx_uint_t *np = data;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
377
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
378 ngx_uint_t mask;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
379
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
380 mask = *np - 1;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
381
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
382 if (*np == 0 || (*np & mask)) {
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
383 return "must be a power of two";
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
384 }
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
385
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
386 *np = mask;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
387
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
388 return NGX_CONF_OK;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
diff changeset
389 }
5515
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
390
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
391
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
392 static char *
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
393 ngx_http_spdy_chunk_size(ngx_conf_t *cf, void *post, void *data)
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
394 {
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
395 size_t *sp = data;
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
396
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
397 if (*sp == 0) {
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
398 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
399 "the spdy chunk size cannot be zero");
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
400 return NGX_CONF_ERROR;
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
401 }
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
402
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
403 if (*sp > NGX_SPDY_MAX_FRAME_SIZE) {
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
404 *sp = NGX_SPDY_MAX_FRAME_SIZE;
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
405 }
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
406
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
407 return NGX_CONF_OK;
e5fb14e85040 SPDY: added the "spdy_chunk_size" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 5121
diff changeset
408 }