From f035ac5470c7fbcf791e361cb2d611de7edafb0f Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 2 May 2020 18:45:50 -0400 Subject: check protocol version before agent communication --- src/bin/rbw-agent/actions.rs | 10 ++++++++++ src/bin/rbw-agent/agent.rs | 4 ++++ 2 files changed, 14 insertions(+) (limited to 'src/bin/rbw-agent') diff --git a/src/bin/rbw-agent/actions.rs b/src/bin/rbw-agent/actions.rs index 8823424..52c34fa 100644 --- a/src/bin/rbw-agent/actions.rs +++ b/src/bin/rbw-agent/actions.rs @@ -256,6 +256,16 @@ pub async fn encrypt( Ok(()) } +pub async fn version(sock: &mut crate::sock::Sock) -> anyhow::Result<()> { + sock.send(&rbw::protocol::Response::Version { + version: rbw::protocol::VERSION, + }) + .await + .context("failed to send response")?; + + Ok(()) +} + async fn respond_ack(sock: &mut crate::sock::Sock) -> anyhow::Result<()> { sock.send(&rbw::protocol::Response::Ack) .await diff --git a/src/bin/rbw-agent/agent.rs b/src/bin/rbw-agent/agent.rs index 9021569..72d6077 100644 --- a/src/bin/rbw-agent/agent.rs +++ b/src/bin/rbw-agent/agent.rs @@ -156,6 +156,10 @@ async fn handle_request( true } rbw::protocol::Action::Quit => std::process::exit(0), + rbw::protocol::Action::Version => { + crate::actions::version(sock).await?; + true + } }; if set_timeout { -- cgit v1.2.3-54-g00ecf