Lines Matching defs:conn

163                               struct connectdata *conn)
175 connkeep(conn, "HTTP default");
178 CURLcode result = Curl_conn_may_http3(data, conn);
197 const struct connectdata *conn,
203 for(head = (conn->bits.proxy && data->set.sep_headers) ?
428 struct connectdata *conn)
449 if(conn->bits.authneg) {
454 else if(!conn->bits.protoconnstart) {
485 (conn->http_ntlm_state != NTLMSTATE_NONE) ||
486 (conn->proxy_ntlm_state != NTLMSTATE_NONE)) {
491 if(!conn->bits.authneg && (conn->writesockfd != CURL_SOCKET_BAD)) {
499 if(conn->bits.close)
513 (conn->http_negotiate_state != GSS_AUTHNONE) ||
514 (conn->proxy_negotiate_state != GSS_AUTHNONE)) {
519 if(!conn->bits.authneg && (conn->writesockfd != CURL_SOCKET_BAD)) {
527 if(conn->bits.close)
538 streamclose(conn, "Mid-auth HTTP and much data left to send");
563 struct connectdata *conn = data->conn;
581 (conn->bits.authneg && data->req.httpcode < 300))) {
586 conn->httpversion > 11) {
588 connclose(conn, "Force HTTP/1.1 connection");
593 if(conn->bits.proxy_user_passwd &&
595 (conn->bits.authneg && data->req.httpcode < 300))) {
607 result = http_perhapsrewind(data, conn);
621 conn->bits.authneg) {
650 struct connectdata *conn,
658 (void)conn;
676 result = Curl_output_negotiate(data, conn, proxy);
694 result = Curl_output_ntlm_wb(data, conn, proxy);
717 (proxy && conn->bits.proxy_user_passwd &&
718 !Curl_checkProxyheaders(data, conn, STRCONST("Proxy-authorization"))) ||
778 * @param conn all information about the current connection
788 struct connectdata *conn,
806 (conn->bits.httpproxy && conn->bits.proxy_user_passwd) ||
835 if(conn->bits.httpproxy &&
836 (conn->bits.tunnel_proxy == (bit)proxytunnel)) {
837 result = output_auth_headers(data, conn, authproxy, request, path, TRUE);
853 || conn->bits.netrc
856 result = output_auth_headers(data, conn, authhost, request, path, FALSE);
866 conn->bits.authneg = TRUE;
869 conn->bits.authneg = FALSE;
878 struct connectdata *conn,
885 (void)conn;
915 struct connectdata *conn = data->conn;
917 curlnegotiate *negstate = proxy ? &conn->proxy_negotiate_state :
918 &conn->http_negotiate_state;
941 (void) conn; /* In case conditionals make it unused. */
968 CURLcode result = Curl_input_negotiate(data, conn, proxy, auth);
1007 result = Curl_input_ntlm_wb(data, conn, proxy, auth);
1111 DEBUGASSERT(data->conn);
1169 if((httpcode == 407) && !data->conn->bits.proxy_user_passwd)
1254 struct connectdata *conn = data->conn;
1271 if((conn->handler->flags & PROTOPT_SSL
1273 || IS_HTTPS_PROXY(conn->http_proxy.proxytype)
1276 && conn->httpversion < 20) {
1508 struct connectdata *conn = data->conn;
1512 connkeep(conn, "HTTP default");
1521 struct connectdata *conn,
1525 (void)conn;
1538 struct connectdata *conn = data->conn;
1547 conn->seek_func = data->set.seek_func; /* restore */
1548 conn->seek_client = data->set.seek_client; /* restore */
1563 !conn->bits.retry &&
1573 streamclose(conn, "Empty reply from server");
1590 const struct connectdata *conn)
1592 if((data->state.httpversion == 10) || (conn->httpversion == 10))
1595 (conn->httpversion <= 10))
1603 const struct connectdata *conn)
1605 if(Curl_conn_is_http3(data, conn, FIRSTSOCKET))
1607 if(Curl_conn_is_http2(data, conn, FIRSTSOCKET))
1609 if(Curl_use_http_1_1plus(data, conn))
1618 struct connectdata *conn,
1622 if(!data->state.disableexpect && Curl_use_http_1_1plus(data, conn) &&
1623 (conn->httpversion < 20)) {
1706 struct connectdata *conn = data->conn;
1719 proxy = conn->bits.httpproxy && !conn->bits.tunnel_proxy?
1811 else if(conn->bits.authneg &&
1821 else if((conn->httpversion >= 20) &&
1853 struct connectdata *conn = data->conn;
1866 proxy = conn->bits.httpproxy && !conn->bits.tunnel_proxy?
1957 else if(conn->bits.authneg &&
1967 else if((conn->httpversion >= 20) &&
2086 void Curl_http_method(struct Curl_easy *data, struct connectdata *conn,
2091 if((conn->handler->protocol&(PROTO_FAMILY_HTTP|CURLPROTO_FTP)) &&
2140 CURLcode Curl_http_host(struct Curl_easy *data, struct connectdata *conn)
2148 data->state.first_host = strdup(conn->host.name);
2152 data->state.first_remote_port = conn->remote_port;
2153 data->state.first_remote_protocol = conn->handler->protocol;
2159 strcasecompare(data->state.first_host, conn->host.name))) {
2204 const char *host = conn->host.name;
2206 if(((conn->given->protocol&(CURLPROTO_HTTPS|CURLPROTO_WSS)) &&
2207 (conn->remote_port == PORT_HTTPS)) ||
2208 ((conn->given->protocol&(CURLPROTO_HTTP|CURLPROTO_WS)) &&
2209 (conn->remote_port == PORT_HTTP)) )
2212 aptr->host = aprintf("Host: %s%s%s\r\n", conn->bits.ipv6_ip?"[":"",
2213 host, conn->bits.ipv6_ip?"]":"");
2215 aptr->host = aprintf("Host: %s%s%s:%d\r\n", conn->bits.ipv6_ip?"[":"",
2216 host, conn->bits.ipv6_ip?"]":"",
2217 conn->remote_port);
2230 struct connectdata *conn,
2243 if(conn->bits.httpproxy && !conn->bits.tunnel_proxy) {
2257 if(conn->host.dispname != conn->host.name) {
2258 uc = curl_url_set(h, CURLUPART_HOST, conn->host.name, 0);
2325 (void)conn; /* not used in disabled-proxy builds */
2338 CURLcode Curl_http_body(struct Curl_easy *data, struct connectdata *conn,
2408 if((conn->handler->protocol & PROTO_FAMILY_HTTP) &&
2413 if(conn->bits.authneg)
2416 else if(Curl_use_http_1_1plus(data, conn)) {
2417 if(conn->httpversion < 20)
2437 static CURLcode addexpect(struct Curl_easy *data, struct connectdata *conn,
2455 return expect100(data, conn, r);
2460 CURLcode Curl_http_bodysend(struct Curl_easy *data, struct connectdata *conn,
2476 if(conn->bits.authneg)
2482 (conn->bits.authneg ||
2491 result = addexpect(data, conn, r);
2520 if(conn->bits.authneg) {
2566 result = addexpect(data, conn, r);
2601 if(conn->bits.authneg)
2611 (conn->bits.authneg ||
2628 result = addexpect(data, conn, r);
2707 if(data->req.upload_chunky && conn->bits.authneg) {
2722 if(!conn->bits.authneg)
2750 else if((conn->handler->protocol & (CURLPROTO_WS|CURLPROTO_WSS)) &&
2767 struct connectdata *conn,
2783 data->state.aptr.cookiehost : conn->host.name;
2785 conn->handler->protocol&(CURLPROTO_HTTPS|CURLPROTO_WSS) ||
2899 struct connectdata *conn,
2927 if(conn->seek_func) {
2929 seekerr = conn->seek_func(conn->seek_client, data->state.resume_from,
2980 struct connectdata *conn,
2987 if(conn->bits.close) {
3007 streamclose(conn, "already downloaded");
3035 streamclose(conn, "Simulated 304 handling");
3084 struct connectdata *conn = data->conn;
3100 switch(conn->alpn) {
3102 DEBUGASSERT(Curl_conn_is_http3(data, conn, FIRSTSOCKET));
3106 if(!Curl_conn_is_http2(data, conn, FIRSTSOCKET) &&
3107 conn->bits.proxy && !conn->bits.tunnel_proxy
3109 result = Curl_http2_switch(data, conn, FIRSTSOCKET);
3115 DEBUGASSERT(Curl_conn_is_http2(data, conn, FIRSTSOCKET));
3122 if(Curl_http2_may_switch(data, conn, FIRSTSOCKET)) {
3124 result = Curl_http2_switch(data, conn, FIRSTSOCKET);
3134 result = Curl_http_host(data, conn);
3142 Curl_http_method(data, conn, &request, &httpreq);
3152 result = Curl_http_output_auth(data, conn, request, httpreq,
3184 result = Curl_http_body(data, conn, httpreq, &te);
3191 result = Curl_http_resume(data, conn, httpreq);
3199 httpstring = get_http_string(data, conn);
3212 result = Curl_http_target(data, conn, &req);
3219 if(conn->bits.altused && !Curl_checkheaders(data, STRCONST("Alt-Used"))) {
3221 conn->conn_to_host.name, conn->conn_to_port);
3264 (conn->bits.httpproxy &&
3265 !conn->bits.tunnel_proxy &&
3268 conn,
3289 if(!(conn->handler->flags&PROTOPT_SSL) &&
3290 conn->httpversion < 20 &&
3301 result = Curl_http_cookies(data, conn, &req);
3303 if(!result && conn->handler->protocol&(CURLPROTO_WS|CURLPROTO_WSS))
3318 result = Curl_http_bodysend(data, conn, &req, httpreq);
3353 if((conn->httpversion >= 20) && data->req.upload_chunky)
3423 checkprotoprefix(struct Curl_easy *data, struct connectdata *conn,
3427 if(conn->handler->protocol & CURLPROTO_RTSP)
3430 (void)conn;
3439 CURLcode Curl_http_header(struct Curl_easy *data, struct connectdata *conn,
3461 streamclose(conn, "overflow content-length");
3484 else if((conn->httpversion == 10) &&
3485 conn->bits.httpproxy &&
3495 connkeep(conn, "Proxy-Connection keep-alive"); /* don't close */
3498 else if((conn->httpversion == 11) &&
3499 conn->bits.httpproxy &&
3507 connclose(conn, "Proxy-Connection: asked to close after done");
3511 else if((conn->httpversion == 10) &&
3521 connkeep(conn, "Connection keep-alive");
3532 streamclose(conn, "Connection: close used");
3554 connclose(conn, "HTTP/1.1 transfer-encoding without chunks");
3622 data->state.aptr.cookiehost:conn->host.name;
3624 conn->handler->protocol&(CURLPROTO_HTTPS|CURLPROTO_WSS) ||
3662 struct negotiatedata *negdata = &conn->negotiate;
3698 result = http_perhapsrewind(data, conn);
3711 ((conn->handler->flags & PROTOPT_SSL) ||
3720 Curl_hsts_parse(data->hsts, conn->host.name,
3734 ((conn->handler->flags & PROTOPT_SSL) ||
3743 enum alpnid id = (conn->httpversion == 30)? ALPN_h3 :
3744 (conn->httpversion == 20) ? ALPN_h2 : ALPN_h1;
3747 id, conn->host.name,
3748 curlx_uitous((unsigned int)conn->remote_port));
3753 else if(conn->handler->protocol & CURLPROTO_RTSP) {
3767 struct connectdata *conn)
3772 data->info.httpversion = conn->httpversion;
3774 data->state.httpversion > conn->httpversion)
3776 data->state.httpversion = conn->httpversion;
3793 if(conn->httpversion == 10) {
3798 connclose(conn, "HTTP/1.0 close after body");
3800 else if(conn->httpversion == 20 ||
3805 conn->bundle->multiuse = BUNDLE_MULTIPLEX;
3807 else if(conn->httpversion >= 11 &&
3808 !conn->bits.close) {
3926 struct connectdata *conn = data->conn;
3953 checkprotoprefix(data, conn,
3960 streamclose(conn, "bad HTTP: No end-of-message indicator");
3988 statusline st = checkprotoprefix(data, conn,
3992 streamclose(conn, "bad HTTP: No end-of-message indicator");
4039 if(conn->httpversion == 11) {
4091 if((k->size == -1) && !k->chunk && !conn->bits.close &&
4092 (conn->httpversion == 11) &&
4093 !(conn->handler->protocol & CURLPROTO_RTSP) &&
4102 streamclose(conn, "HTTP: No end-of-message indicator");
4115 if(conn->bits.close &&
4117 (conn->http_ntlm_state == NTLMSTATE_TYPE2)) ||
4119 (conn->proxy_ntlm_state == NTLMSTATE_TYPE2)))) {
4125 if(conn->bits.close &&
4127 (conn->http_negotiate_state == GSS_AUTHRECV)) ||
4129 (conn->proxy_negotiate_state == GSS_AUTHRECV)))) {
4133 if((conn->http_negotiate_state == GSS_AUTHDONE) &&
4135 conn->http_negotiate_state = GSS_AUTHSUCC;
4137 if((conn->proxy_negotiate_state == GSS_AUTHDONE) &&
4139 conn->proxy_negotiate_state = GSS_AUTHSUCC;
4191 if((!conn->bits.authneg) && !conn->bits.close &&
4226 streamclose(conn,
4228 result = http_perhapsrewind(data, conn);
4246 streamclose(conn, "Stop sending data before everything sent");
4263 (conn->writesockfd != CURL_SOCKET_BAD)) {
4286 && !Curl_conn_is_http2(data, conn, FIRSTSOCKET)
4287 && !Curl_conn_is_http3(data, conn, FIRSTSOCKET))
4302 result = Curl_http2_upgrade(data, conn, FIRSTSOCKET, buf, blen);
4321 if(conn->handler->protocol & PROTO_FAMILY_HTTP) {
4392 conn->httpversion = (unsigned char)httpversion;
4402 if(conn->httpversion != 20)
4405 if(conn->httpversion < 20) {
4406 conn->bundle->multiuse = BUNDLE_NO_MULTIUSE;
4420 conn->httpversion = 10;
4424 else if(conn->handler->protocol & CURLPROTO_RTSP) {
4441 conn->httpversion = 11; /* RTSP acts like HTTP 1.1 */
4453 result = Curl_http_statusline(data, conn);
4468 result = Curl_http_header(data, conn, headp);
4525 result = Curl_http_firstwrite(data, data->conn, done);
4860 scheme = (data->conn && data->conn->handler->flags & PROTOPT_SSL)?