Lines Matching refs:http
81 if (!cgi->wsi->http.cgi->post_in_expected)
82 cgi->wsi->http.cgi->cgi_transaction_over = 1;
98 if (wsi->http.cgi)
100 (int)wsi->http.cgi->post_in_expected);
106 if (wsi->http.cgi)
107 lws_sul_schedule(wsi->a.context, wsi->tsi, &wsi->http.cgi->sul_grace,
127 wsi->http.cgi = lws_zalloc(sizeof(*wsi->http.cgi), "new cgi");
128 if (!wsi->http.cgi) {
133 wsi->http.cgi->response_code = HTTP_STATUS_OK;
135 cgi = wsi->http.cgi;
147 lwsl_wsi_debug(wsi, "adding cgi %p to list", wsi->http.cgi);
148 cgi->cgi_list = pt->http.cgi_list;
149 pt->http.cgi_list = cgi;
163 wsi->http.cgi->gzip_inflate = 1;
176 if (wsi->http.ah) {
346 if (!wsi->http.cgi->gzip_inflate &&
356 wsi->http.cgi->post_in_expected = (lws_filepos_t)
375 wsi->http.cgi->implied_chunked = 1;
376 wsi->http.cgi->explicitly_chunked = 1;
404 info.plsp = &wsi->http.cgi->lsp;
417 wsi->http.cgi->lsp = lws_spawn_piped(&info);
418 if (!wsi->http.cgi->lsp) {
436 lws_sul_cancel(&wsi->http.cgi->sul_grace);
437 lws_free_set_NULL(wsi->http.cgi);
470 if (!wsi->http.cgi)
481 wsi->http.cgi->response_code);
483 (unsigned int)wsi->http.cgi->response_code,
486 if (!wsi->http.cgi->explicitly_chunked &&
487 !wsi->http.cgi->content_length &&
502 * so we have a bunch of http/1 style ascii headers
503 * starting from wsi->http.cgi->headers_buf through
504 * wsi->http.cgi->headers_pos. These are OK for http/1
505 * connections, but they're no good for http/2 conns.
508 * correct coding for http/1 or http/2
513 p = wsi->http.cgi->headers_start;
514 wsi->http.cgi->headers_start =
515 wsi->http.cgi->headers_pos;
516 wsi->http.cgi->headers_dumped =
517 wsi->http.cgi->headers_start;
521 while (p < wsi->http.cgi->headers_start) {
525 * in http/2 upper-case header names
563 p + 1 == wsi->http.cgi->headers_start) {
573 (unsigned char **)&wsi->http.cgi->headers_pos,
574 (unsigned char *)wsi->http.cgi->headers_end))
588 (unsigned char **)&wsi->http.cgi->headers_pos,
589 (unsigned char *)wsi->http.cgi->headers_end)) {
603 n = (int)(wsi->http.cgi->headers_pos -
604 wsi->http.cgi->headers_dumped);
611 if (wsi->http.cgi->headers_dumped + n !=
612 wsi->http.cgi->headers_pos) {
618 (unsigned char *)wsi->http.cgi->headers_dumped,
624 wsi->http.cgi->headers_dumped += n;
625 if (wsi->http.cgi->headers_dumped ==
626 wsi->http.cgi->headers_pos) {
628 lws_free_set_NULL(wsi->http.cgi->headers_buf);
631 if (wsi->http.cgi->post_in_expected) {
651 if (!wsi->http.cgi->headers_buf) {
656 wsi->http.cgi->headers_buf = lws_malloc((unsigned int)n + LWS_PRE,
658 if (!wsi->http.cgi->headers_buf) {
664 wsi->http.cgi->headers_start =
665 wsi->http.cgi->headers_buf + LWS_PRE;
666 wsi->http.cgi->headers_pos = wsi->http.cgi->headers_start;
667 wsi->http.cgi->headers_dumped = wsi->http.cgi->headers_pos;
668 wsi->http.cgi->headers_end =
669 wsi->http.cgi->headers_buf + n - 1;
672 wsi->http.cgi->match[n] = 0;
673 wsi->http.cgi->lp = 0;
677 n = lws_get_socket_fd(wsi->http.cgi->lsp->stdwsi[LWS_STDOUT]);
689 if (wsi->http.cgi->headers_pos >=
690 wsi->http.cgi->headers_end - 4) {
700 wsi->http.cgi->match[1], wsi->hdr_state);
711 if (!significant_hdr[n][wsi->http.cgi->match[n]] &&
713 wsi->http.cgi->lp < (int)sizeof(wsi->http.cgi->l) - 1) {
714 wsi->http.cgi->l[wsi->http.cgi->lp++] = c;
715 wsi->http.cgi->l[wsi->http.cgi->lp] = '\0';
718 wsi->http.cgi->content_length =
719 (lws_filepos_t)atoll(wsi->http.cgi->l);
722 wsi->http.cgi->response_code =
723 atoi(wsi->http.cgi->l);
725 wsi->http.cgi->response_code);
732 if (significant_hdr[n][wsi->http.cgi->match[n]]) {
734 significant_hdr[n][wsi->http.cgi->match[n]])
735 wsi->http.cgi->match[n]++;
737 wsi->http.cgi->match[n] = 0;
744 *wsi->http.cgi->headers_pos++ = '\x0d';
746 *wsi->http.cgi->headers_pos++ = (unsigned char)c;
752 [wsi->http.cgi->match[
755 wsi->http.cgi->explicitly_chunked = 1;
761 wsi->http.cgi->match[SIGNIFICANT_HDR_LOCATION]]) {
763 wsi->http.cgi->response_code = 302;
767 *wsi->http.cgi->headers_pos++ = (unsigned char)c;
785 wsi->http.cgi->match[n] = 0;
786 wsi->http.cgi->lp = 0;
795 wsi->http.cgi->content_length);
807 *wsi->http.cgi->headers_pos++ = (unsigned char)c;
810 wsi->http.cgi->match[n] = 0;
811 wsi->http.cgi->lp = 0;
825 m = !wsi->http.cgi->implied_chunked && !wsi->mux_substream &&
826 // !wsi->http.cgi->explicitly_chunked &&
827 !wsi->http.cgi->content_length;
828 n = lws_get_socket_fd(wsi->http.cgi->lsp->stdwsi[LWS_STDOUT]);
865 if (wsi->http.cgi->content_length_seen + (unsigned int)n ==
866 wsi->http.cgi->content_length)
875 wsi->http.cgi->content_length_seen += (unsigned int)n;
888 wsi->http.cgi->cgi_transaction_over = 1;
914 if (!wsi->http.cgi || !wsi->http.cgi->lsp)
917 pid = wsi->http.cgi->lsp->child_pid;
919 args.stdwsi = &wsi->http.cgi->lsp->stdwsi[0];
920 lws_spawn_piped_kill_child_process(wsi->http.cgi->lsp);
921 /* that has invalidated and NULL'd wsi->http.cgi->lsp */
924 if (wsi->http.cgi)
925 m = wsi->http.cgi->being_closed;
950 pcgi = &pt->http.cgi_list;
1008 pcgi = &pt->http.cgi_list;
1069 if (!wsi->http.cgi)
1072 return wsi->http.cgi->lsp->stdwsi[ch];
1079 struct lws_cgi **pcgi = &pt->http.cgi_list;
1084 if (*pcgi == wsi->http.cgi) {
1091 if (wsi->http.cgi->headers_buf)
1092 lws_free_set_NULL(wsi->http.cgi->headers_buf);
1095 wsi->http.cgi->being_closed = 1;
1098 if (!pt->http.cgi_list)