aboutsummaryrefslogtreecommitdiffstats
path: root/src/peer.rs
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2018-02-19 20:06:10 -0800
committerBryan Newbold <bnewbold@robocracy.org>2018-02-19 20:06:10 -0800
commit4eb739dcab2a1a79e1e0e60feddb0d9cc0d74108 (patch)
treeda5786d14a71ebb1f961efd37586fcd15d430371 /src/peer.rs
parent915acb1be8693f992afd7b5c82c2761c85b6b64d (diff)
downloadgeniza-4eb739dcab2a1a79e1e0e60feddb0d9cc0d74108.tar.gz
geniza-4eb739dcab2a1a79e1e0e60feddb0d9cc0d74108.zip
more WIP on synchronizer
Diffstat (limited to 'src/peer.rs')
-rw-r--r--src/peer.rs32
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;
+ }
};
}
};