BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

¿Cómo podría eliminar la cabecera HTTP Content-Length?

Jeronimo17
1

Siguiendo lo que estaba montando aquí Lentitud con OpenVPN entre 2 casas al ver HD o enviar archivos desde PC, tengo pasada la voz por OpenVPN y el streaming de video por tunnel ssh entre 2 routers con Openwrt y todo esto genial.

Pero he puesto Kodi en un Android TV y se corta el streaming a la hora y poco aproximadamente; Se por que pasa, es cosa del receptor Freesat V8 que tiene una configuración pésima del servidor HTTP (no modificable) y emite Content-Length: 2624204796. Al llegar a esa cantidad de datos descargada, Kodi y cualquier reproductor en el PC termina el streaming a no ser que se incluya -–ignore-content-length abriendolo con Curl, -–http-continuous con VLC o -–ignore-length con Wget (desconozco si hay más programa que permitan eso).

En Kodi he preguntado en los foros y al parecer no tiene opción de ignorar la cabecera.

¿Es posible eliminarla antes en el router OpenWRT con Tinyproxy o parecido?

Gracias

rbetancor
1

Puedes hacerlo con un script con iptables … ¿pero no crees que es complicarse demasiado la vida?, es matar moscas a cañonazos.

Yo me replantearía seriamente revisar esa configuración que tienes montada, me parece excesivamente complicada para una simple reproducción de contenidos remota.

Jeronimo17

Bueno también esta la VoIP y accedo a mi a la red local etc… he estado aprendiendo, eso va todo de maravilla.

Así que iptables lo puede hacer, ¿conoces algún sitio que hable de la manipulación de cabeceras?

BocaDePez
1

Se me ocurre,que podrías montar un servidor nginx,usarlo como proxy y eliminar la cabecera.

🗨️ 4
Jeronimo17
1

Muy buena idea, algo así pensé pero no sabia que usar, nginx se instala fácilmente en Openwrt y parece que ¡funciona!

server {
        listen       8080;
        server_name  localhost;
        more_clear_headers 'Content-Length';
        location / {
                    proxy_pass http://192.168.1.138:81;

¡Muchas Gracias!

Aun me quedo con la duda de iptables, ¿es posible también?

🗨️ 1
BocaDePez
1

Yo desconozco si puedes hacerlo con iptables, que algo de inspección de tráfico tendrá. Pero no es la herramienta más adecuada para eso, ya que está un par de niveles por debajo del protocolo HTTP.

Jeronimo17
1

Sobre nginx, efectivamente elimina la cabecera pero el mismo no ignora la cabecera de entrada así que corta el mismo nginx :( intento con more_set_input_headers pero por ahora no me hace nada

Edito: Vale, eso modifica solo la cabecera de petición del proxy pero no la cabecera de respuesta :-(

You cannot remove the Connection response header using this module because the Connection response header is generated by the standard ngx_http_header_filter_module in the Nginx core, whose output header filter runs always after the filter of this module. The only way to actually remove the Connection header is to patch the Nginx core, that is, editing the C function ngx_http_header_filter in the src/http/ngx_http_header_filter_module.c file.

Edito2: proxy_buffering off; era la clave también, junto a la otra more_clear_headers 'Content-Length'; , se comporta como quiero :-)

🗨️ 1
vukits
1

muchas gracias por la info ;)