Request::connect can build an invalid Request object
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- rust
- Área
- networking
Línea de trabajo
Comienza leyendo la documentación de Request::connect y Uri::authority; después, sigue la llamada a body() que se muestra en el ejemplo. Determina qué comportamiento de RFC 2817 se pretende y verifica que construir una solicitud CONNECT no puede conservar una URI completa no válida.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
According to RFC2817, Section 5.2 the URI of the CONNECT method should be only the authority part:
A CONNECT method requests that a proxy establish a tunnel connection
on its behalf. The Request-URI portion of the Request-Line is always
an 'authority' as defined by URI Generic Syntax [2], which is to say
the host name and port number destination of the requested connection
separated by a colon:
However with the http 0.2.4 crate it is possible to create a CONNECT request with an invalid URI part.
Example:
use http::Request;
use http::Uri;
fn main() {
let u: Uri = "http://example.org/index.html".parse().unwrap();
let r = Request::connect(u).body(()).unwrap();
dbg!(&r);
}
Output:
[src/main.rs:7] &r = Request {
method: CONNECT,
uri: http://example.org/index.html,
version: HTTP/1.1,
headers: {},
body: (),
}
Available options are:
- Keep it as is.
- When building a
CONNECTrequest, take only the authority part of the URI and ensure it has the correct value for the destination port. - Return a
Uri(uri::InvalidUri)error when callingbody().
- Lenguaje dominante
- Rust
- Estrellas
- 1.4k
- Forks
- 378
- Merge medio
- 1 d 21 h
- PR fusionados (30 d)
- 5
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de hyperium/http
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
Todos los issues de hyperium/http
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
TheLarkInn/aipm#2413 ·
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
alexgorbatchev/simple-ptt#15 ·
-
tooling
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
todo:ticket
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
taikoxyz/taiko-mono#22168 · 1 comentario ·