@@ -159,7 +159,7 @@ pub enum Event {
159159 /// Accepting an inbound reservation request failed.
160160 ReservationReqAcceptFailed { error : inbound_hop:: Error } ,
161161 /// An inbound reservation request has been denied.
162- ReservationReqDenied { } ,
162+ ReservationReqDenied { status : proto :: Status } ,
163163 /// Denying an inbound reservation request has failed.
164164 ReservationReqDenyFailed { error : inbound_hop:: Error } ,
165165 /// An inbound reservation has timed out.
@@ -173,6 +173,7 @@ pub enum Event {
173173 CircuitReqDenied {
174174 circuit_id : Option < CircuitId > ,
175175 dst_peer_id : PeerId ,
176+ status : proto:: Status ,
176177 } ,
177178 /// Denying an inbound circuit request failed.
178179 CircuitReqDenyFailed {
@@ -238,9 +239,10 @@ impl fmt::Debug for Event {
238239 . debug_struct ( "Event::ReservationReqAcceptFailed" )
239240 . field ( "error" , error)
240241 . finish ( ) ,
241- Event :: ReservationReqDenied { } => {
242- f. debug_struct ( "Event::ReservationReqDenied" ) . finish ( )
243- }
242+ Event :: ReservationReqDenied { status } => f
243+ . debug_struct ( "Event::ReservationReqDenied" )
244+ . field ( "status" , status)
245+ . finish ( ) ,
244246 Event :: ReservationReqDenyFailed { error } => f
245247 . debug_struct ( "Event::ReservationReqDenyFailed" )
246248 . field ( "error" , error)
@@ -256,10 +258,12 @@ impl fmt::Debug for Event {
256258 Event :: CircuitReqDenied {
257259 circuit_id,
258260 dst_peer_id,
261+ status,
259262 } => f
260263 . debug_struct ( "Event::CircuitReqDenied" )
261264 . field ( "circuit_id" , circuit_id)
262265 . field ( "dst_peer_id" , dst_peer_id)
266+ . field ( "status" , status)
263267 . finish ( ) ,
264268 Event :: CircuitReqDenyFailed {
265269 circuit_id,
@@ -359,7 +363,12 @@ pub struct Handler {
359363 /// Futures accepting an inbound circuit request.
360364 circuit_accept_futures : Futures < Result < CircuitParts , ( CircuitId , PeerId , inbound_hop:: Error ) > > ,
361365 /// Futures denying an inbound circuit request.
362- circuit_deny_futures : Futures < ( Option < CircuitId > , PeerId , Result < ( ) , inbound_hop:: Error > ) > ,
366+ circuit_deny_futures : Futures < (
367+ Option < CircuitId > ,
368+ PeerId ,
369+ proto:: Status ,
370+ Result < ( ) , inbound_hop:: Error > ,
371+ ) > ,
363372 /// Futures relaying data for circuit between two peers.
364373 circuits : Futures < ( CircuitId , PeerId , Result < ( ) , std:: io:: Error > ) > ,
365374
@@ -479,7 +488,7 @@ impl Handler {
479488
480489enum ReservationRequestFuture {
481490 Accepting ( BoxFuture < ' static , Result < ( ) , inbound_hop:: Error > > ) ,
482- Denying ( BoxFuture < ' static , Result < ( ) , inbound_hop:: Error > > ) ,
491+ Denying ( BoxFuture < ' static , ( proto :: Status , Result < ( ) , inbound_hop:: Error > ) > ) ,
483492}
484493
485494type Futures < T > = FuturesUnordered < BoxFuture < ' static , T > > ;
@@ -519,7 +528,11 @@ impl ConnectionHandler for Handler {
519528 if self
520529 . reservation_request_future
521530 . replace ( ReservationRequestFuture :: Denying (
522- inbound_reservation_req. deny ( status) . err_into ( ) . boxed ( ) ,
531+ inbound_reservation_req
532+ . deny ( status)
533+ . err_into ( )
534+ . map ( move |result| ( status, result) )
535+ . boxed ( ) ,
523536 ) )
524537 . is_some ( )
525538 {
@@ -554,7 +567,7 @@ impl ConnectionHandler for Handler {
554567 inbound_circuit_req
555568 . deny ( status)
556569 . err_into ( )
557- . map ( move |result| ( circuit_id, dst_peer_id, result) )
570+ . map ( move |result| ( circuit_id, dst_peer_id, status , result) )
558571 . boxed ( ) ,
559572 ) ;
560573 }
@@ -719,7 +732,7 @@ impl ConnectionHandler for Handler {
719732 }
720733
721734 // Deny new circuits.
722- if let Poll :: Ready ( Some ( ( circuit_id, dst_peer_id, result) ) ) =
735+ if let Poll :: Ready ( Some ( ( circuit_id, dst_peer_id, status , result) ) ) =
723736 self . circuit_deny_futures . poll_next_unpin ( cx)
724737 {
725738 match result {
@@ -728,6 +741,7 @@ impl ConnectionHandler for Handler {
728741 Event :: CircuitReqDenied {
729742 circuit_id,
730743 dst_peer_id,
744+ status,
731745 } ,
732746 ) ) ;
733747 }
@@ -838,13 +852,13 @@ impl ConnectionHandler for Handler {
838852 }
839853 }
840854 Some ( ReservationRequestFuture :: Denying ( fut) ) => {
841- if let Poll :: Ready ( result) = fut. poll_unpin ( cx) {
855+ if let Poll :: Ready ( ( status , result) ) = fut. poll_unpin ( cx) {
842856 self . reservation_request_future = None ;
843857
844858 match result {
845859 Ok ( ( ) ) => {
846860 return Poll :: Ready ( ConnectionHandlerEvent :: NotifyBehaviour (
847- Event :: ReservationReqDenied { } ,
861+ Event :: ReservationReqDenied { status } ,
848862 ) )
849863 }
850864 Err ( error) => {
0 commit comments