Lines Matching refs:hctx

210 ajp13_stdin_append (handler_ctx * const hctx)  in ajp13_stdin_append()  argument
212 chunkqueue * const req_cq = &hctx->r->reqbody_queue; in ajp13_stdin_append()
214 const off_t max_bytes = hctx->request_id < req_cqlen in ajp13_stdin_append()
215 ? hctx->request_id < MAX_WRITE_LIMIT ? hctx->request_id : MAX_WRITE_LIMIT in ajp13_stdin_append()
225 if (-1 != hctx->wb_reqlen) { in ajp13_stdin_append()
226 if (hctx->wb_reqlen >= 0) in ajp13_stdin_append()
227 hctx->wb_reqlen += sizeof(hdr); in ajp13_stdin_append()
229 hctx->wb_reqlen -= sizeof(hdr); in ajp13_stdin_append()
233 (chunkqueue_is_empty(&hctx->wb) || hctx->wb.first->type == MEM_CHUNK) in ajp13_stdin_append()
235 ? chunkqueue_append_mem(&hctx->wb, (char *)&hdr, sizeof(hdr)) in ajp13_stdin_append()
236 : chunkqueue_append_mem_min(&hctx->wb, (char *)&hdr, sizeof(hdr)); in ajp13_stdin_append()
237 chunkqueue_steal(&hctx->wb, req_cq, dlen); in ajp13_stdin_append()
241 hctx->request_id -= (int)sent; in ajp13_stdin_append()
247 ajp13_stdin_append_n (handler_ctx * const hctx, const uint32_t n) in ajp13_stdin_append_n() argument
249 if (hctx->wb.bytes_in == hctx->wb_reqlen) { in ajp13_stdin_append_n()
252 hctx->wb_reqlen += sizeof(hdr); in ajp13_stdin_append_n()
253 chunkqueue_append_mem(&hctx->wb, (char *)hdr, sizeof(hdr)); in ajp13_stdin_append_n()
264 if (n <= (uint32_t)(INT_MAX - hctx->request_id)) in ajp13_stdin_append_n()
265 hctx->request_id += (int)n; in ajp13_stdin_append_n()
267 hctx->request_id = INT_MAX; /*(limitation of overloaded struct member)*/ in ajp13_stdin_append_n()
269 ajp13_stdin_append(hctx); in ajp13_stdin_append_n()
543 ajp13_create_env (handler_ctx * const hctx) in ajp13_create_env() argument
545 request_st * const r = hctx->r; in ajp13_create_env()
548 chunkqueue_prepend_buffer_open_sz(&hctx->wb, AJP13_MAX_PACKET_SIZE); in ajp13_create_env()
560 gw_host * const host = hctx->host; in ajp13_create_env()
562 (hctx->gw_mode == FCGI_AUTHORIZER), in ajp13_create_env()
629 chunkqueue_prepend_buffer_commit(&hctx->wb); in ajp13_create_env()
630 hctx->wb_reqlen = (off_t)n; in ajp13_create_env()
635 hctx->wb_reqlen += r->reqbody_length; in ajp13_create_env()
639 hctx->wb_reqlen = -hctx->wb_reqlen; in ajp13_create_env()
642 ajp13_stdin_append_n(hctx, AJP13_MAX_PACKET_SIZE-4); in ajp13_create_env()
643 hctx->request_id = 0; /* overloaded value; see ajp13_stdin_append_n() */ in ajp13_create_env()
656 chunkqueue_remove_finished_chunks(&hctx->wb); in ajp13_create_env()
662 ajp13_expand_headers (buffer * const b, handler_ctx * const hctx, uint32_t plen) in ajp13_expand_headers() argument
666 chunkqueue_compact_mem(hctx->rb, plen); in ajp13_expand_headers()
672 chunk * const c = hctx->rb->first; in ajp13_expand_headers()
767 ajp13_recv_0(const request_st * const r, const handler_ctx * const hctx) in ajp13_recv_0() argument
769 if (-1 == hctx->request_id) /*(flag request ended)*/ in ajp13_recv_0()
771 if (!(fdevent_fdnode_interest(hctx->fdn) & FDEVENT_IN) in ajp13_recv_0()
778 hctx->proc->pid, hctx->proc->connection_name->ptr); in ajp13_recv_0()
785 ajp13_recv_parse_loop (request_st * const r, handler_ctx * const hctx) in ajp13_recv_parse_loop() argument
791 const off_t rblen = chunkqueue_length(hctx->rb); in ajp13_recv_parse_loop()
796 if (chunkqueue_peek_data(hctx->rb, &ptr, &pklen, errh) < 0) in ajp13_recv_parse_loop()
804 hctx->proc->pid, hctx->proc->connection_name->ptr); in ajp13_recv_parse_loop()
820 buffer *hdrs = hctx->response; in ajp13_recv_parse_loop()
826 ajp13_expand_headers(hdrs, hctx, 4 + plen); in ajp13_recv_parse_loop()
829 http_response_parse_headers(r, &hctx->opts, hdrs)) { in ajp13_recv_parse_loop()
830 hctx->send_content_body = 0; in ajp13_recv_parse_loop()
834 if (!hctx->response) { in ajp13_recv_parse_loop()
835 hctx->response = chunk_buffer_acquire(); in ajp13_recv_parse_loop()
836 buffer_copy_buffer(hctx->response, hdrs); in ajp13_recv_parse_loop()
839 else if (hctx->gw_mode == GW_AUTHORIZER && in ajp13_recv_parse_loop()
842 hctx->send_content_body = 0; in ajp13_recv_parse_loop()
843 hctx->opts.authorizer |= /*(save response streaming flags)*/ in ajp13_recv_parse_loop()
878 else if (hctx->send_content_body) { in ajp13_recv_parse_loop()
881 if (chunkqueue_peek_data(hctx->rb, &ptr, &pklen, errh) < 0) in ajp13_recv_parse_loop()
892 chunkqueue_mark_written(hctx->rb, 7); in ajp13_recv_parse_loop()
893 if (0 == http_response_transfer_cqlen(r, hctx->rb, len)) { in ajp13_recv_parse_loop()
895 chunkqueue_mark_written(hctx->rb, plen - 3 - len); in ajp13_recv_parse_loop()
901 hctx->send_content_body = 0; in ajp13_recv_parse_loop()
913 if (chunkqueue_peek_data(hctx->rb, &ptr, &pklen, errh) < 0) in ajp13_recv_parse_loop()
917 ajp13_stdin_append_n(hctx, ajp13_dec_uint16((uint8_t *)ptr+5)); in ajp13_recv_parse_loop()
924 if (chunkqueue_peek_data(hctx->rb, &ptr, &pklen, errh) < 0) in ajp13_recv_parse_loop()
932 hctx->request_id = -1; /*(flag request ended)*/ in ajp13_recv_parse_loop()
945 chunkqueue_mark_written(hctx->rb, 4 + plen); in ajp13_recv_parse_loop()
955 handler_ctx * const hctx = (handler_ctx *)opts->pdata; in ajp13_recv_parse() local
956 if (0 == n) return ajp13_recv_0(r, hctx); in ajp13_recv_parse()
959 chunkqueue_append_buffer(hctx->rb, b); in ajp13_recv_parse()
960 return ajp13_recv_parse_loop(r, hctx); in ajp13_recv_parse()
977 handler_ctx *hctx = r->plugin_ctx[p->id]; in ajp13_check_extension() local
978 hctx->opts.backend = BACKEND_AJP13; in ajp13_check_extension()
979 hctx->opts.parse = ajp13_recv_parse; in ajp13_check_extension()
980 hctx->opts.pdata = hctx; in ajp13_check_extension()
981 hctx->stdin_append = ajp13_stdin_append; in ajp13_check_extension()
982 hctx->create_env = ajp13_create_env; in ajp13_check_extension()
983 if (!hctx->rb) in ajp13_check_extension()
984 hctx->rb = chunkqueue_init(NULL); in ajp13_check_extension()
986 chunkqueue_reset(hctx->rb); in ajp13_check_extension()