aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/rbw-agent
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2020-05-02 18:45:50 -0400
committerJesse Luehrs <doy@tozt.net>2020-05-02 18:59:11 -0400
commitf035ac5470c7fbcf791e361cb2d611de7edafb0f (patch)
tree8d75832af542bb27ca32163fbadc67758dde50cb /src/bin/rbw-agent
parentbcf1df8dd65fb24c767ca91159fc5639dbd5375f (diff)
downloadrbw-f035ac5470c7fbcf791e361cb2d611de7edafb0f.tar.gz
rbw-f035ac5470c7fbcf791e361cb2d611de7edafb0f.zip
check protocol version before agent communication
Diffstat (limited to 'src/bin/rbw-agent')
-rw-r--r--src/bin/rbw-agent/actions.rs10
-rw-r--r--src/bin/rbw-agent/agent.rs4
2 files changed, 14 insertions, 0 deletions
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 {