aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2020-05-25 22:00:19 -0400
committerJesse Luehrs <doy@tozt.net>2020-05-25 22:00:19 -0400
commitf41f8243a78aa40e737053d560060ad94a1c7b5c (patch)
treec8f16e102eaa872efaac2a75dba058da439ca507
parentfe23507043d5d476e382d364270fcc9419475958 (diff)
downloadrbw-f41f8243a78aa40e737053d560060ad94a1c7b5c.tar.gz
rbw-f41f8243a78aa40e737053d560060ad94a1c7b5c.zip
remove more unnecessary error contexts
-rw-r--r--src/bin/rbw-agent/actions.rs29
-rw-r--r--src/bin/rbw-agent/agent.rs12
-rw-r--r--src/bin/rbw-agent/main.rs3
-rw-r--r--src/bin/rbw/sock.rs2
4 files changed, 15 insertions, 31 deletions
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<String> {
- 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<rbw::db::Db> {
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<String> {
- 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<Self> {
- 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<tokio::sync::RwLock<State>>,
) -> 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<crate::daemon::StartupAck>,
) -> 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<Self> {
Ok(Self(std::os::unix::net::UnixStream::connect(
rbw::dirs::socket_file(),