diff --git a/zebra-network/src/peer/server.rs b/zebra-network/src/peer/server.rs index 90e92a64..e0d820a7 100644 --- a/zebra-network/src/peer/server.rs +++ b/zebra-network/src/peer/server.rs @@ -1,3 +1,4 @@ +use std::error::Error; use std::sync::Arc; use futures::{ @@ -276,6 +277,24 @@ where } AwaitingRequest } + ( + AwaitingResponse(_, tx), + Message::Reject { + message, + ccode, + reason, + data, + }, + ) => { + tx.send(Err(SharedPeerError::from(Arc::new(PeerError::Rejected)))) + .expect("response oneshot should be unused"); + + error!( + "{:?} message rejected: {:?}, {:?}, {:?}", + message, ccode, reason, data + ); + AwaitingRequest + } // By default, messages are not responses. (state, msg) => { ignored_msg = Some(msg);