From d46bdbbab59ae8f521953139425965cdbed8529e Mon Sep 17 00:00:00 2001 From: Gregor Reitzenstein Date: Fri, 20 Nov 2020 15:55:04 +0100 Subject: [PATCH] Handshake! --- src/schema/mod.rs | 2 +- src/session.rs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/schema/mod.rs b/src/schema/mod.rs index 84ebb5a..1efef10 100644 --- a/src/schema/mod.rs +++ b/src/schema/mod.rs @@ -45,7 +45,7 @@ pub fn bootstrap(log: Logger, stream: TcpStream) -> (RpcSystem, API) { return (rpc, API::new(log, client)); } -async fn handshake(log: &Logger, mut stream: &mut TcpStream) -> Result<(), io::Error> { +pub async fn handshake(log: &Logger, mut stream: &mut TcpStream) -> Result<(), io::Error> { let host = "localhost"; let program = format!("{}-{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")); let version = (0u32,1u32); diff --git a/src/session.rs b/src/session.rs index 5ce69f4..fd3655e 100644 --- a/src/session.rs +++ b/src/session.rs @@ -9,7 +9,7 @@ use smol::net::AsyncToSocketAddrs; use slog::Logger; -use crate::schema::{bootstrap, API, Authentication}; +use crate::schema::{handshake, bootstrap, API, Authentication}; pub struct Session { pub bootstrap: API, @@ -19,7 +19,8 @@ pub struct Session { impl Session { pub async fn connect(log: Logger, addr: A) -> Result { - let stream = TcpStream::connect(addr).await?; + let mut stream = TcpStream::connect(addr).await?; + handshake(&log, &mut stream).await; let (rpc_system, api) = bootstrap(log, stream); Ok(Session {