diff --git a/src/sql/deserialize.rs b/src/sql/deserialize.rs index fb7d04a8e..35a109199 100644 --- a/src/sql/deserialize.rs +++ b/src/sql/deserialize.rs @@ -326,12 +326,14 @@ impl Decoder { " INSERT INTO acpeerstates (addr, + backward_verified_key_id, gossip_key, gossip_key_fingerprint, gossip_timestamp, last_seen, last_seen_autocrypt, prefer_encrypted, public_key, public_key_fingerprint, verified_key, verified_key_fingerprint) VALUES (:addr, + :backward_verified_key_id :gossip_key, :gossip_key_fingerprint, :gossip_timestamp, :last_seen, :last_seen_autocrypt, :prefer_encrypted, @@ -344,6 +346,13 @@ VALUES (:addr, self.expect_key("addr").await?; let addr = self.expect_string().await?; + let backward_verified_key_id = + if self.expect_key_opt("backward_verified_key_id").await? { + Some(self.expect_i64().await?) + } else { + None + }; + let gossip_key = if self.expect_key_opt("gossip_key").await? { Some(self.expect_blob().await?) } else { @@ -397,6 +406,7 @@ VALUES (:addr, stmt.execute(named_params! { ":addr": addr, + ":backward_verified_key_id": backward_verified_key_id, ":gossip_key": gossip_key, ":gossip_key_fingerprint": gossip_key_fingerprint, ":gossip_timestamp": gossip_timestamp, diff --git a/src/sql/serialize.rs b/src/sql/serialize.rs index 467e9bcf3..70baba47f 100644 --- a/src/sql/serialize.rs +++ b/src/sql/serialize.rs @@ -93,12 +93,13 @@ impl<'a, W: AsyncWrite + Unpin> Encoder<'a, W> { } async fn serialize_acpeerstates(&mut self) -> Result<()> { - let mut stmt = self.tx.prepare("SELECT addr, last_seen, last_seen_autocrypt, public_key, prefer_encrypted, gossip_timestamp, gossip_key, public_key_fingerprint, gossip_key_fingerprint, verified_key, verified_key_fingerprint FROM acpeerstates")?; + let mut stmt = self.tx.prepare("SELECT addr, backward_verified_key_id, last_seen, last_seen_autocrypt, public_key, prefer_encrypted, gossip_timestamp, gossip_key, public_key_fingerprint, gossip_key_fingerprint, verified_key, verified_key_fingerprint FROM acpeerstates")?; let mut rows = stmt.query(())?; self.w.write_all(b"l").await?; while let Some(row) = rows.next()? { let addr: String = row.get("addr")?; + let backward_verified_key_id: Option = row.get("backward_verified_key_id")?; let prefer_encrypted: i64 = row.get("prefer_encrypted")?; let last_seen: i64 = row.get("last_seen")?; @@ -119,6 +120,11 @@ impl<'a, W: AsyncWrite + Unpin> Encoder<'a, W> { write_str(&mut self.w, "addr").await?; write_str(&mut self.w, &addr).await?; + if let Some(backward_verified_key_id) = backward_verified_key_id { + write_str(&mut self.w, "backward_verified_key_id").await?; + write_i64(&mut self.w, backward_verified_key_id).await?; + } + if let Some(gossip_key) = gossip_key { write_str(&mut self.w, "gossip_key").await?; write_bytes(&mut self.w, &gossip_key).await?;