From f41f8243a78aa40e737053d560060ad94a1c7b5c Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 25 May 2020 22:00:19 -0400 Subject: remove more unnecessary error contexts --- src/bin/rbw-agent/actions.rs | 29 +++++++++-------------------- src/bin/rbw-agent/agent.rs | 12 +++--------- src/bin/rbw-agent/main.rs | 3 +-- src/bin/rbw/sock.rs | 2 ++ 4 files changed, 15 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/bin/rbw-agent/actions.rs b/src/bin/rbw-agent/actions.rs index d2b38dc..0b05829 100644 --- a/src/bin/rbw-agent/actions.rs +++ b/src/bin/rbw-agent/actions.rs @@ -8,9 +8,7 @@ pub async fn login( let mut db = load_db().await.unwrap_or_else(|_| rbw::db::Db::new()); if db.needs_login() { - let url_str = config_base_url() - .await - .context("failed to read base url from config")?; + let url_str = config_base_url().await?; let url = reqwest::Url::parse(&url_str) .context("failed to parse base url")?; let host = if let Some(host) = url.host_str() { @@ -301,16 +299,13 @@ 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")?; + .await?; Ok(()) } async fn respond_ack(sock: &mut crate::sock::Sock) -> anyhow::Result<()> { - sock.send(&rbw::protocol::Response::Ack) - .await - .context("failed to send response")?; + sock.send(&rbw::protocol::Response::Ack).await?; Ok(()) } @@ -320,8 +315,7 @@ async fn respond_decrypt( plaintext: String, ) -> anyhow::Result<()> { sock.send(&rbw::protocol::Response::Decrypt { plaintext }) - .await - .context("failed to send response")?; + .await?; Ok(()) } @@ -331,16 +325,13 @@ async fn respond_encrypt( cipherstring: String, ) -> anyhow::Result<()> { sock.send(&rbw::protocol::Response::Encrypt { cipherstring }) - .await - .context("failed to send response")?; + .await?; Ok(()) } async fn config_email() -> anyhow::Result { - let config = rbw::config::Config::load_async() - .await - .context("failed to load config")?; + let config = rbw::config::Config::load_async().await?; if let Some(email) = config.email { Ok(email) } else { @@ -353,7 +344,7 @@ async fn load_db() -> anyhow::Result { if let Some(email) = &config.email { rbw::db::Db::load_async(&config.server_name(), &email) .await - .context("failed to load password database") + .map_err(anyhow::Error::new) } else { Err(anyhow::anyhow!("failed to find email address in config")) } @@ -364,15 +355,13 @@ async fn save_db(db: &rbw::db::Db) -> anyhow::Result<()> { if let Some(email) = &config.email { db.save_async(&config.server_name(), &email) .await - .context("failed to save password database") + .map_err(anyhow::Error::new) } else { Err(anyhow::anyhow!("failed to find email address in config")) } } async fn config_base_url() -> anyhow::Result { - let config = rbw::config::Config::load_async() - .await - .context("failed to load config")?; + let config = rbw::config::Config::load_async().await?; Ok(config.base_url()) } diff --git a/src/bin/rbw-agent/agent.rs b/src/bin/rbw-agent/agent.rs index 655c3dc..2d9b08e 100644 --- a/src/bin/rbw-agent/agent.rs +++ b/src/bin/rbw-agent/agent.rs @@ -48,8 +48,7 @@ pub struct Agent { impl Agent { pub fn new() -> anyhow::Result { - let config = - rbw::config::Config::load().context("failed to load config")?; + let config = rbw::config::Config::load()?; let timeout_duration = tokio::time::Duration::from_secs(config.lock_timeout); let (w, r) = tokio::sync::mpsc::unbounded_channel(); @@ -125,16 +124,11 @@ async fn handle_request( sock: &mut crate::sock::Sock, state: std::sync::Arc>, ) -> anyhow::Result<()> { - let req = sock - .recv() - .await - .context("failed to receive incoming message")?; + let req = sock.recv().await?; let req = match req { Ok(msg) => msg, Err(error) => { - sock.send(&rbw::protocol::Response::Error { error }) - .await - .context("failed to send response")?; + sock.send(&rbw::protocol::Response::Error { error }).await?; return Ok(()); } }; diff --git a/src/bin/rbw-agent/main.rs b/src/bin/rbw-agent/main.rs index a673c88..5e476f8 100644 --- a/src/bin/rbw-agent/main.rs +++ b/src/bin/rbw-agent/main.rs @@ -8,8 +8,7 @@ mod sock; async fn tokio_main( startup_ack: Option, ) -> anyhow::Result<()> { - let listener = - crate::sock::listen().context("failed to listen on socket")?; + let listener = crate::sock::listen()?; if let Some(startup_ack) = startup_ack { startup_ack.ack()?; diff --git a/src/bin/rbw/sock.rs b/src/bin/rbw/sock.rs index b3ff1d6..f3fe365 100644 --- a/src/bin/rbw/sock.rs +++ b/src/bin/rbw/sock.rs @@ -4,6 +4,8 @@ use std::io::{BufRead as _, Write as _}; pub struct Sock(std::os::unix::net::UnixStream); impl Sock { + // not returning anyhow::Result here because we want to be able to handle + // specific kinds of std::io::Results differently pub fn connect() -> std::io::Result { Ok(Self(std::os::unix::net::UnixStream::connect( rbw::dirs::socket_file(), -- cgit v1.2.3-54-g00ecf