Wenn ich ein OpenWrt-Image mit make menuconfig kompiliere, aktiviere ich das Kontrollkästchen libcurl und dann das Kontrollkästchen zum Hinzufügen von HTTP/2-Unterstützung. Außerdem stelle ich sicher, dass auch die nghttp2-Bibliothek aktiviert ist. In meinem Code, der die Anfragen stellt, habe ich CURLOPT_HTTP_VERSION auf CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE gesetzt, da mein Server bei allen Browseranfragen HTTP/2 verwendet und dies über https erfolgt.
Zum Testen habe ich curl auf einem Ubuntu-Rechner mit HTTP/2-Unterstützung kompiliert und eine POST-Anfrage an dieselbe URL gesendet, die ich in OpenWrt anfordere, und die Anfrage verwendete HTTP/2. Ist bekannt, dass etwas mit HTTP/2 in OpenWrt nicht stimmt? Oder ist das ein Problem, das andere Leute hatten und behoben haben? Es gibt keine nützlichen Debugdaten, ich habe mich bereits durch alles durchgearbeitet und bin irgendwie ratlos.
Ich verwende mbedTLS als mein TLS/SSL-Backend, falls das nützlich ist.
Mit weiteren Informationen bearbeitet: Dieses Snippet wurde ausgeführt:
printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_HTTP2);
und es wurde gedruckt und 0
dann ausgeführt:
printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_SSL);
und es wurde ausgegeben 4
. Obwohl ich mein Image also mit eingeschlossener libcurl, aktivierter http2-Unterstützung und aktivierter SSL-Unterstützung kompiliere, wird tatsächlich nur SSL eingeschlossen. Es gibt jedoch .so
sowohl für mbedtls als auch für libnghttp2 eins.
Jede Hilfe hierzu wäre hilfreich.