allow reconecting with same peer ID (in case cnx wasnt closed properly)

pull/19/head
Niko PLP 7 months ago
parent 978d9c25d4
commit 993aa5622c
  1. 9
      ng-net/src/broker.rs
  2. 2
      ng-repo/src/branch.rs

@ -680,7 +680,7 @@ impl Broker {
.or_insert(HashSet::with_capacity(1)); .or_insert(HashSet::with_capacity(1));
if !peers_set.insert(peer) { if !peers_set.insert(peer) {
return Err(ProtocolError::PeerAlreadyConnected); //return Err(ProtocolError::PeerAlreadyConnected);
} }
Ok(()) Ok(())
} }
@ -762,13 +762,14 @@ impl Broker {
) -> Result<(), ProtocolError> { ) -> Result<(), ProtocolError> {
log_debug!("ATTACH PEER_ID {:?}", remote_peer_id); log_debug!("ATTACH PEER_ID {:?}", remote_peer_id);
let already = self.peers.get(&(None, Some(remote_peer_id))); let already = self.peers.remove(&(None, Some(remote_peer_id)));
if already.is_some() { if already.is_some() {
match already.unwrap().connected { match already.unwrap().connected {
PeerConnection::NONE => {} PeerConnection::NONE => {}
_ => { PeerConnection::Client(mut cnx) => {
return Err(ProtocolError::PeerAlreadyConnected); cnx.close().await;
} }
_ => {}
}; };
} }

@ -103,7 +103,7 @@ impl DagNode {
let mut res = vec![*id]; let mut res = vec![*id];
already_in.insert(*id); already_in.insert(*id);
for child in this.future.iter() { for child in this.future.iter() {
log_debug!("child of {} : {}", id, child); // log_debug!("child of {} : {}", id, child);
res.append(&mut Self::collapse(child, dag, dag_ids, already_in)); res.append(&mut Self::collapse(child, dag, dag_ids, already_in));
} }
res res

Loading…
Cancel
Save