When I compile an OpenWrt image with make menuconfig
, I am checking the libcurl box and then checking the box to add HTTP/2 support, and making sure that the nghttp2 library is also checked. In my code that makes the requests, I have the CURLOPT_HTTP_VERSION
set to CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE
because my server does use HTTP/2 on all browser requests and it's over https.
For testing, I have compiled curl on an Ubuntu machine with HTTP/2 support and made a POST request to the same URL that I'm requesting in OpenWrt, and the request used HTTP/2. Is there something that's known to be wrong with HTTP/2 in OpenWrt? Or is this a problem that other people have had and have fixed? There's no debug data that's useful, I've already dug through all of it and am kind of at a loss.
Edit: I'm using mbedTLS as my TLS/SSL backend, in case that's useful.
Edited with more info: ran this snippet:
printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_HTTP2);
and it printed 0, then ran:
printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_SSL);
and it printed 4. So even though I'm compiling my image with libcurl included, http2 support checked, and SSL support checked, only SSL is actually being included. However, there is a .so for both mbedtls AND libnghttp2.
Any help with this would be useful.