on some call sites: peerstate.save_to_db() should bubble up errors instead of crashing.

also write a test that double-creation of an addr-row is fine.
This commit is contained in:
holger krekel
2019-10-01 00:20:08 +02:00
committed by Floris Bruynooghe
parent 22d2097132
commit ee6d16f1b1
4 changed files with 45 additions and 10 deletions

View File

@@ -284,16 +284,16 @@ pub fn try_decrypt(
if let Some(ref mut peerstate) = peerstate {
if let Some(ref header) = autocryptheader {
peerstate.apply_header(&header, message_time);
peerstate.save_to_db(&context.sql, false).unwrap();
peerstate.save_to_db(&context.sql, false)?;
} else if message_time > peerstate.last_seen_autocrypt
&& !contains_report(in_out_message)
{
peerstate.degrade_encryption(message_time);
peerstate.save_to_db(&context.sql, false).unwrap();
peerstate.save_to_db(&context.sql, false)?;
}
} else if let Some(ref header) = autocryptheader {
let p = Peerstate::from_header(context, header, message_time);
p.save_to_db(&context.sql, true).unwrap();
p.save_to_db(&context.sql, true)?;
peerstate = Some(p);
}
}