diff options
author | Jesse Luehrs <doy@tozt.net> | 2020-05-22 01:23:41 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2020-05-22 01:23:41 -0400 |
commit | 63601c5ebb22c2c1c0f0b079a723aba961b337d1 (patch) | |
tree | 2c4ee54a2c0d5b59dbd870808ec2cab9cf84e323 /src | |
parent | 1bc09a9c74d0d1c47d1b88b5833ad8174fc04928 (diff) | |
download | rbw-63601c5ebb22c2c1c0f0b079a723aba961b337d1.tar.gz rbw-63601c5ebb22c2c1c0f0b079a723aba961b337d1.zip |
don't allow setting lock_timeout to 0
this isn't useful, because the agent will just drop the keys as soon as
they are unlocked, before they can be used to decrypt anything
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/rbw/commands.rs | 9 | ||||
-rw-r--r-- | src/config.rs | 12 |
2 files changed, 17 insertions, 4 deletions
diff --git a/src/bin/rbw/commands.rs b/src/bin/rbw/commands.rs index 6d90010..b3caa18 100644 --- a/src/bin/rbw/commands.rs +++ b/src/bin/rbw/commands.rs @@ -317,9 +317,14 @@ pub fn config_set(key: &str, value: &str) -> anyhow::Result<()> { "base_url" => config.base_url = Some(value.to_string()), "identity_url" => config.identity_url = Some(value.to_string()), "lock_timeout" => { - config.lock_timeout = value + let timeout = value .parse() - .context("failed to parse value for lock_timeout")? + .context("failed to parse value for lock_timeout")?; + if timeout == 0 { + log::error!("lock_timeout must be greater than 0"); + } else { + config.lock_timeout = timeout; + } } _ => return Err(anyhow::anyhow!("invalid config key: {}", key)), } diff --git a/src/config.rs b/src/config.rs index caa27a6..39044c0 100644 --- a/src/config.rs +++ b/src/config.rs @@ -27,8 +27,12 @@ impl Config { let mut json = String::new(); fh.read_to_string(&mut json) .context(crate::error::LoadConfig)?; - let slf: Self = serde_json::from_str(&json) + let mut slf: Self = serde_json::from_str(&json) .context(crate::error::LoadConfigJson)?; + if slf.lock_timeout == 0 { + log::warn!("lock_timeout must be greater than 0"); + slf.lock_timeout = default_lock_timeout(); + } Ok(slf) } @@ -40,8 +44,12 @@ impl Config { fh.read_to_string(&mut json) .await .context(crate::error::LoadConfigAsync)?; - let slf: Self = serde_json::from_str(&json) + let mut slf: Self = serde_json::from_str(&json) .context(crate::error::LoadConfigJson)?; + if slf.lock_timeout == 0 { + log::warn!("lock_timeout must be greater than 0"); + slf.lock_timeout = default_lock_timeout(); + } Ok(slf) } |