libcurl not upgrading POST requests to HTTP/2 on OpenWrt

2

1

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.

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.

Connor Ruggles

Posted 2018-12-06T15:44:32.827

Reputation: 21

No answers