libcurl が OpenWrt 上の POST リクエストを HTTP/2 にアップグレードしない

libcurl が OpenWrt 上の POST リクエストを HTTP/2 にアップグレードしない

make menuconfig を使用して OpenWrt イメージをコンパイルするときに、libcurl ボックスをチェックし、次に HTTP/2 サポートを追加するボックスをチェックし、nghttp2 ライブラリもチェックされていることを確認します。リクエストを行うコードでは、CURLOPT_HTTP_VERSION を CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE に設定しています。これは、サーバーがすべてのブラウザー リクエストで HTTP/2 を使用し、https 経由であるためです。

テストのために、HTTP/2 をサポートする Ubuntu マシンで curl をコンパイルし、OpenWrt で要求しているのと同じ URL に POST 要求を送信しました。要求では HTTP/2 が使用されました。OpenWrt の HTTP/2 に問題があることがわかっているのでしょうか? それとも、これは他の人が経験して修正した問題なのでしょうか? 役に立つデバッグ データはありません。すでにすべて調べましたが、途方に暮れています。

役に立つかもしれないので、TLS/SSL バックエンドとして mbedTLS を使用しています。

詳細情報を編集しました: このスニペットを実行しました:

printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_HTTP2);

そして、 が出力され0、次のように実行されました:

printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_SSL);

と出力されました4。libcurl を組み込み、http2 サポートと SSL サポートをチェックしてイメージをコンパイルしているにもかかわらず、実際に組み込まれるのは SSL だけです。ただし、.sombedtls と libnghttp2 の両方に があります。

これに関して何か助けがあれば助かります。

関連情報