File tree Expand file tree Collapse file tree 1 file changed +15
-5
lines changed Expand file tree Collapse file tree 1 file changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -47,11 +47,21 @@ async fn echo(mut req: Request<IncomingBody>, res: Responder) -> Finished {
47
47
Finished :: finish ( body, result, None )
48
48
}
49
49
50
- async fn echo_headers ( req : Request < IncomingBody > , responder : Responder ) -> Finished {
51
- let mut res = Response :: builder ( ) ;
52
- * res. headers_mut ( ) . unwrap ( ) = req. into_parts ( ) . 0 . headers ;
53
- let res = res. body ( empty ( ) ) . unwrap ( ) ;
54
- responder. respond ( res) . await
50
+ async fn echo_headers ( req : Request < IncomingBody > , res : Responder ) -> Finished {
51
+ let mut body = res. start_response ( Response :: new ( BodyForthcoming ) ) ;
52
+ let mut result = Ok ( ( ) ) ;
53
+
54
+ for ( name, value) in req. headers ( ) . iter ( ) {
55
+ if let Err ( e) = body
56
+ . write_all ( format ! ( "{}: {}\n " , name, value. to_str( ) . unwrap_or( "" ) ) . as_bytes ( ) )
57
+ . await
58
+ {
59
+ result = Err ( e) ;
60
+ break ;
61
+ }
62
+ }
63
+
64
+ Finished :: finish ( body, result, None )
55
65
}
56
66
57
67
async fn echo_trailers ( req : Request < IncomingBody > , res : Responder ) -> Finished {
You can’t perform that action at this time.
0 commit comments