Cuando compilo una imagen OpenWrt con make menuconfig, marco la casilla libcurl y luego marco la casilla para agregar compatibilidad con HTTP/2, y me aseguro de que la biblioteca nghttp2 también esté marcada. En mi código que realiza las solicitudes, tengo CURLOPT_HTTP_VERSION configurado en CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE porque mi servidor usa HTTP/2 en todas las solicitudes del navegador y es a través de https.
Para realizar pruebas, compilé curl en una máquina Ubuntu con soporte HTTP/2 e hice una solicitud POST a la misma URL que estoy solicitando en OpenWrt, y la solicitud utilizó HTTP/2. ¿Se sabe que hay algún problema con HTTP/2 en OpenWrt? ¿O es un problema que otras personas han tenido y han solucionado? No hay datos de depuración que sean útiles, ya los revisé todos y estoy un poco perdido.
Estoy usando mbedTLS como mi backend TLS/SSL, en caso de que sea útil.
Editado con más información: ejecuté este fragmento:
printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_HTTP2);
e imprimió 0
, luego ejecutó:
printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_SSL);
y se imprimió 4
. Entonces, aunque estoy compilando mi imagen con libcurl incluido, la compatibilidad con http2 y la compatibilidad con SSL verificadas, en realidad solo se incluye SSL. Sin embargo, existe un archivo .so
para mbedtls Y libnghttp2.
Cualquier ayuda con esto sería útil.