{"author":"Stefan Eissing","author_email":"stefan@eissing.org","author_time":1737988753,"commit_time":1739891412,"committer":"Daniel Stenberg","committer_email":"daniel@haxx.se","hash":"db72b8d4d0a5982590998b5db45414f02a4f04c7","message":"http: version negotiation\n\nTranslate the `data->set.httpwant` which is one of the consts from the\npublic API (CURL_HTTP_VERSION_*) into a major version mask plus\nadditional flags for internal handling.\n\n`Curl_http_neg_init()` does the translation and flags setting in http.c,\nusing new internal consts CURL_HTTP_V1x, CURL_HTTP_V2x and CURL_HTTP_V3x\nfor the major versions. The flags are\n\n- only_10: when the application explicity asked fro HTTP/1.0\n- h2_upgrade: when the application asks for upgrading 1.1 to 2.\n- h2_prior_knowledge: when directly talking h2 without ALPN\n- accept_09: when a HTTP/0.9 response is acceptable.\n\nThe Alt-Svc and HTTPS RR redirections from one ALPN to another obey the\nallowed major versions. If a transfer has only h3 enabled, Alt-Svc\nredirection to h2 is ignored.\n\nThis is the current implementation. It can be debated if Alt-Svc should\nbe able to override the allowed major versions. Added test_12_06 to\nverify the current restriction.\n\nCloses #16100\n","parents":["f7fcbb8127e840c06125078839ea294ed5fb717b"],"tree_hash":"2dd30155ee2f17e2348eeaf9136e6bd4a7152a6a"}