mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-20 22:11:01 +00:00
fix panic in PSM when add_reserved_peer(same_peer) is called twice (#2640)
This commit is contained in:
committed by
GitHub
parent
b9c39d771a
commit
e296cf8cba
@@ -291,6 +291,10 @@ impl<'a> ConnectedPeer<'a> {
|
|||||||
|
|
||||||
/// Sets whether or not the node is reserved.
|
/// Sets whether or not the node is reserved.
|
||||||
pub fn set_reserved(&mut self, reserved: bool) {
|
pub fn set_reserved(&mut self, reserved: bool) {
|
||||||
|
if reserved == self.state.reserved {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if reserved {
|
if reserved {
|
||||||
self.state.reserved = true;
|
self.state.reserved = true;
|
||||||
match self.state.connection_state {
|
match self.state.connection_state {
|
||||||
@@ -595,4 +599,16 @@ mod tests {
|
|||||||
peer.set_reserved(true);
|
peer.set_reserved(true);
|
||||||
peer.disconnect();
|
peer.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn multiple_set_reserved_calls_doesnt_panic() {
|
||||||
|
let mut peers_state = PeersState::new(1, 1);
|
||||||
|
let id = PeerId::random();
|
||||||
|
let mut peer = peers_state.peer(&id)
|
||||||
|
.into_unknown().unwrap().discover()
|
||||||
|
.force_outgoing();
|
||||||
|
peer.set_reserved(true);
|
||||||
|
peer.set_reserved(true);
|
||||||
|
peer.disconnect();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user