From 296c2a98c35257cf3f90a99e98ba8e7ac65c1a36 Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Wed, 8 Sep 2021 18:08:39 -0600 Subject: [PATCH] fix tor address field on update --- appmgr/sqlx-data.json | 28 ++++++++++++++++++---------- appmgr/src/net/interface.rs | 9 ++++++--- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/appmgr/sqlx-data.json b/appmgr/sqlx-data.json index cf1fec4b4..cb0327b5b 100644 --- a/appmgr/sqlx-data.json +++ b/appmgr/sqlx-data.json @@ -178,6 +178,24 @@ ] } }, + "c895b08869cc611708d37643ec92b5c827c1766c63e263d5687aa639357b27e6": { + "query": "INSERT OR IGNORE INTO tor (package, interface, key) VALUES (?, ?, ?) RETURNING key AS \"key!:Vec\"", + "describe": { + "columns": [ + { + "name": "key!:Vec", + "ordinal": 0, + "type_info": "Null" + } + ], + "parameters": { + "Right": 3 + }, + "nullable": [ + null + ] + } + }, "d5117054072476377f3c4f040ea429d4c9b2cf534e76f35c80a2bf60e8599cca": { "query": "SELECT openssh_pubkey FROM ssh_keys", "describe": { @@ -196,16 +214,6 @@ ] } }, - "d79d608ceb862c15b741a6040044c6dd54a837a3a0c5594d15a6041c7bc68ea8": { - "query": "INSERT OR IGNORE INTO tor (package, interface, key) VALUES (?, ?, ?)", - "describe": { - "columns": [], - "parameters": { - "Right": 3 - }, - "nullable": [] - } - }, "de2a5e90798d606047ab8180c044baac05469c0cdf151316bd58ee8c7196fdef": { "query": "SELECT * FROM ssh_keys WHERE fingerprint = ?", "describe": { diff --git a/appmgr/src/net/interface.rs b/appmgr/src/net/interface.rs index ceb8dab07..a718158b3 100644 --- a/appmgr/src/net/interface.rs +++ b/appmgr/src/net/interface.rs @@ -36,14 +36,17 @@ impl Interfaces { if iface.tor_config.is_some() || iface.lan_config.is_some() { let key = TorSecretKeyV3::generate(); let key_vec = key.as_bytes().to_vec(); - sqlx::query!( - "INSERT OR IGNORE INTO tor (package, interface, key) VALUES (?, ?, ?)", + let key_row = sqlx::query!( + "INSERT OR IGNORE INTO tor (package, interface, key) VALUES (?, ?, ?) RETURNING key AS \"key!:Vec\"", **package_id, **id, key_vec, ) - .execute(&mut *secrets) + .fetch_one(&mut *secrets) .await?; + let mut key = [0_u8; 64]; + key.clone_from_slice(&key_row.key); + let key = TorSecretKeyV3::from(key); let onion = key.public().get_onion_address(); if iface.tor_config.is_some() { addrs.tor_address = Some(onion.to_string());