diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2018-02-19 20:06:10 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2018-02-19 20:06:10 -0800 |
commit | 4eb739dcab2a1a79e1e0e60feddb0d9cc0d74108 (patch) | |
tree | da5786d14a71ebb1f961efd37586fcd15d430371 /src/peer.rs | |
parent | 915acb1be8693f992afd7b5c82c2761c85b6b64d (diff) | |
download | geniza-4eb739dcab2a1a79e1e0e60feddb0d9cc0d74108.tar.gz geniza-4eb739dcab2a1a79e1e0e60feddb0d9cc0d74108.zip |
more WIP on synchronizer
Diffstat (limited to 'src/peer.rs')
-rw-r--r-- | src/peer.rs | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/src/peer.rs b/src/peer.rs index b4fddef..a020a1a 100644 --- a/src/peer.rs +++ b/src/peer.rs @@ -71,14 +71,30 @@ fn worker_thread(mut dc: DatConnection, handle: u64, outbound_chan: chan::Receiv }; }, raw_peer_rx.recv() -> val => { - if let Some(Ok((msg, feed_index))) = val { - // do mapping between feed index and feed pubkey here - let pm = PeerMsg { - peer_handle: handle, - feed_index: feed_index, - msg, - }; - unified_chan.send(Ok(pm)); + match val { + Some(Ok((msg, feed_index))) => { + // do mapping between feed index and feed pubkey here + let pm = PeerMsg { + peer_handle: handle, + feed_index: feed_index, + msg, + }; + unified_chan.send(Ok(pm)); + }, + Some(Err(err)) => { + println!("remote socket error: {:?}", err); + // XXX: Need to send something so we know to close + unified_chan.send(Err(err)); + dc.close(); + return; + }, + None => { + println!("remote socket closed"); + // XXX: Need to send something so we know to close + //unified_chan.send(Err(err)); + dc.close(); + return; + } }; } }; |