@@ -10,7 +10,7 @@ use std::rc::Rc;
1010use std:: task:: { Context , Poll } ;
1111
1212use bytes:: Bytes ;
13- use futures:: future:: { ok, Ready } ;
13+ use futures:: future:: { ok, Either , Ready } ;
1414use regex:: Regex ;
1515use time:: OffsetDateTime ;
1616
@@ -154,7 +154,7 @@ where
154154 type Request = WebRequest < E > ;
155155 type Response = WebResponse ;
156156 type Error = S :: Error ;
157- type Future = LoggerResponse < S > ;
157+ type Future = Either < LoggerResponse < S > , S :: Future > ;
158158
159159 #[ inline]
160160 fn poll_ready ( & self , cx : & mut Context < ' _ > ) -> Poll < Result < ( ) , Self :: Error > > {
@@ -169,23 +169,19 @@ where
169169 #[ inline]
170170 fn call ( & self , req : WebRequest < E > ) -> Self :: Future {
171171 if self . inner . exclude . contains ( req. path ( ) ) {
172- LoggerResponse {
173- fut : self . service . call ( req) ,
174- format : None ,
175- time : OffsetDateTime :: now ( ) ,
176- }
172+ Either :: Right ( self . service . call ( req) )
177173 } else {
178- let now = OffsetDateTime :: now ( ) ;
174+ let time = OffsetDateTime :: now ( ) ;
179175 let mut format = self . inner . format . clone ( ) ;
180176
181177 for unit in & mut format. 0 {
182- unit. render_request ( now , & req) ;
178+ unit. render_request ( time , & req) ;
183179 }
184- LoggerResponse {
185- fut : self . service . call ( req ) ,
180+ Either :: Left ( LoggerResponse {
181+ time ,
186182 format : Some ( format) ,
187- time : now ,
188- }
183+ fut : self . service . call ( req ) ,
184+ } )
189185 }
190186 }
191187}
@@ -514,6 +510,11 @@ mod tests {
514510 let res = srv. call ( req) . await . unwrap ( ) ;
515511 let body = test:: read_body ( res) . await ;
516512 assert_eq ! ( body, Bytes :: from_static( b"TEST" ) ) ;
513+
514+ let req = TestRequest :: with_uri ( "/test" ) . to_srv_request ( ) ;
515+ let res = srv. call ( req) . await . unwrap ( ) ;
516+ let body = test:: read_body ( res) . await ;
517+ assert_eq ! ( body, Bytes :: from_static( b"TEST" ) ) ;
517518 }
518519
519520 #[ ntex_rt:: test]
0 commit comments