HttpParser and multiple concatenated HTTP responses

Abierto
#44 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
c, python
Área
networking

Línea de trabajo

Empieza reproduciendo el caso de respuestas concatenadas en torno a HttpParser.execute() e is_message_complete(), y después inspecciona cómo se actualiza _clen_rest cuando termina una respuesta. La tarea estará terminada cuando el parser indique el límite de la primera respuesta sin colocar texto de respuestas posteriores en el body, de modo que otro parser pueda comenzar en la posición devuelta.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

improvement

Hi!

If my understanding is correct HttpParser.execute returns the number of bytes consumed, hence it is possible to parse multiple concatenated HTTP responses by checking is_message_complete() and starting a new parser from the same very position the last one stopped.

However the observed behavior is very different: execute() happily consumes the whole string, the subsequent responses text ends up in the message body and _clen_rest is negative.

Lenguaje dominante
C
Estrellas
345
Forks
93
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de benoitc/http-parser

Todos los issues de benoitc/http-parser

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.