Lines Matching refs:r
39 request_config_reset (request_st * const r) in request_config_reset() argument
41 memcpy(&r->conf, request_config_defaults, sizeof(request_config)); in request_config_reset()
46 request_init_data (request_st * const r, connection * const con, server * const srv) in request_init_data() argument
48 chunkqueue_init(&r->write_queue); in request_init_data()
49 chunkqueue_init(&r->read_queue); in request_init_data()
50 chunkqueue_init(&r->reqbody_queue); in request_init_data()
52 r->http_method = HTTP_METHOD_UNSET; in request_init_data()
53 r->http_version = HTTP_VERSION_UNSET; in request_init_data()
54 r->resp_header_len = 0; in request_init_data()
55 r->loops_per_request = 0; in request_init_data()
56 r->con = con; in request_init_data()
57 r->tmp_buf = srv->tmp_buf; in request_init_data()
58 r->resp_body_scratchpad = -1; in request_init_data()
59 r->server_name = &r->uri.authority; in request_init_data()
60 r->dst_addr = &con->dst_addr; in request_init_data()
61 r->dst_addr_buf = &con->dst_addr_buf; in request_init_data()
64 r->plugin_ctx = ck_calloc(srv->plugins.used + 1, sizeof(void *)); in request_init_data()
65 r->cond_cache = ck_calloc(srv->config_context->used, sizeof(cond_cache_t)); in request_init_data()
69 r->cond_captures = srv->config_captures; in request_init_data()
70 r->cond_match = ck_calloc(srv->config_captures, sizeof(cond_match_t *)); in request_init_data()
71 r->cond_match_data = ck_calloc(srv->config_captures, in request_init_data()
76 request_config_reset(r); in request_init_data()
81 request_reset (request_st * const r) in request_reset() argument
83 plugins_call_handle_request_reset(r); in request_reset()
85 http_response_reset(r); in request_reset()
87 r->loops_per_request = 0; in request_reset()
88 r->keep_alive = 0; in request_reset()
90 r->h2state = 0; /* H2_STATE_IDLE */ in request_reset()
91 r->h2id = 0; in request_reset()
92 r->http_method = HTTP_METHOD_UNSET; in request_reset()
93 r->http_version = HTTP_VERSION_UNSET; in request_reset()
97 r->http_host = NULL; in request_reset()
98 r->reqbody_length = 0; in request_reset()
99 r->te_chunked = 0; in request_reset()
100 r->resp_body_scratchpad = -1; in request_reset()
101 r->rqst_htags = 0; in request_reset()
103 r->async_callback = 0; in request_reset()
104 r->error_handler_saved_status = 0; in request_reset()
108 r->h2_connect_ext = 0; in request_reset()
110 buffer_clear(&r->uri.scheme); in request_reset()
112 if (r->rqst_header_len <= BUFFER_MAX_REUSE_SIZE) { in request_reset()
113 r->rqst_headers.used = 0; in request_reset()
119 buffer_clear(&r->target); in request_reset()
120 buffer_clear(&r->pathinfo); in request_reset()
128 buffer_reset(&r->target); in request_reset()
129 buffer_reset(&r->pathinfo); in request_reset()
135 array_reset_data_strings(&r->rqst_headers); in request_reset()
137 r->rqst_header_len = 0; in request_reset()
138 if (0 != r->env.used) in request_reset()
139 array_reset_data_strings(&r->env); in request_reset()
141 chunkqueue_reset(&r->reqbody_queue); in request_reset()
151 request_config_reset(r); in request_reset()
157 static void request_plugin_ctx_check(request_st * const r, server * const srv) {
163 if (NULL == r->plugin_ctx[pd->id]
164 && NULL == r->con->plugin_ctx[pd->id]) continue;
165 log_error(r->conf.errh, __FILE__, __LINE__,
167 r->plugin_ctx[pd->id] = NULL;
168 r->con->plugin_ctx[pd->id] = NULL;
175 request_reset_ex (request_st * const r) in request_reset_ex() argument
179 connection * const con = r->con; in request_reset_ex()
182 if (NULL != r->plugin_ctx[i] || NULL != con->plugin_ctx[i]) { in request_reset_ex()
183 request_plugin_ctx_check(r, srv); in request_reset_ex()
189 r->server_name = &r->uri.authority; in request_reset_ex()
190 buffer_clear(&r->uri.authority); in request_reset_ex()
191 buffer_reset(&r->uri.path); in request_reset_ex()
192 buffer_reset(&r->uri.query); in request_reset_ex()
193 buffer_reset(&r->physical.path); in request_reset_ex()
194 buffer_reset(&r->physical.rel_path); in request_reset_ex()
195 buffer_reset(&r->target_orig); in request_reset_ex()
196 buffer_reset(&r->target); /*(see comments in request_reset())*/ in request_reset_ex()
197 buffer_reset(&r->pathinfo); /*(see comments in request_reset())*/ in request_reset_ex()
205 request_free_data (request_st * const r) in request_free_data() argument
207 chunkqueue_reset(&r->reqbody_queue); in request_free_data()
208 chunkqueue_reset(&r->write_queue); in request_free_data()
209 chunkqueue_reset(&r->read_queue); in request_free_data()
210 array_free_data(&r->rqst_headers); in request_free_data()
211 array_free_data(&r->resp_headers); in request_free_data()
212 array_free_data(&r->env); in request_free_data()
214 free(r->target.ptr); in request_free_data()
215 free(r->target_orig.ptr); in request_free_data()
217 free(r->uri.scheme.ptr); in request_free_data()
218 free(r->uri.authority.ptr); in request_free_data()
219 free(r->uri.path.ptr); in request_free_data()
220 free(r->uri.query.ptr); in request_free_data()
222 free(r->physical.doc_root.ptr); in request_free_data()
223 free(r->physical.path.ptr); in request_free_data()
224 free(r->physical.basedir.ptr); in request_free_data()
225 free(r->physical.rel_path.ptr); in request_free_data()
227 free(r->pathinfo.ptr); in request_free_data()
228 free(r->server_name_buf.ptr); in request_free_data()
230 free(r->plugin_ctx); in request_free_data()
231 free(r->cond_cache); in request_free_data()
233 if (r->cond_match_data) { in request_free_data()
234 for (int i = 0, used = r->cond_captures; i < used; ++i) { in request_free_data()
236 if (r->cond_match_data[i].match_data) in request_free_data()
237 pcre2_match_data_free(r->cond_match_data[i].match_data); in request_free_data()
239 if (r->cond_match_data[i].matches) in request_free_data()
240 free(r->cond_match_data[i].matches); in request_free_data()
243 free(r->cond_match_data); in request_free_data()
244 free(r->cond_match); in request_free_data()
260 request_st * const r = reqpool; in request_pool_free() local
261 reqpool = (request_st *)r->con; /*(reuse r->con as next ptr)*/ in request_pool_free()
262 request_free_data(r); in request_pool_free()
263 free(r); in request_pool_free()
269 request_release (request_st * const r) in request_release() argument
277 chunkqueue_reset(&r->read_queue); in request_release()
281 request_reset(r); in request_release()
282 request_reset_ex(r); in request_release()
283 r->state = CON_STATE_CONNECT; in request_release()
285 r->con = (connection *)reqpool; /*(reuse r->con as next ptr)*/ in request_release()
286 reqpool = r; in request_release()
293 request_st *r = reqpool; in request_acquire() local
294 if (r) { in request_acquire()
295 reqpool = (request_st *)r->con; /*(reuse r->con as next ptr)*/ in request_acquire()
298 r = ck_calloc(1, sizeof(request_st)); in request_acquire()
299 request_init_data(r, con, con->srv); in request_acquire()
302 r->con = con; in request_acquire()
303 r->tmp_buf = con->srv->tmp_buf; in request_acquire()
304 return r; in request_acquire()