summaryrefslogtreecommitdiff
path: root/crates/chat-server/src/maintenance.rs
diff options
context:
space:
mode:
authorDoan Luu Duc Tai <doan@luuduct.ai>2026-10-31 07:39:18 -0500
committerDoan Luu Duc Tai <doan@luuduct.ai>2026-10-31 07:39:18 -0500
commitd809d86182ab802472ae7d5e74cab66ba7bfa397 (patch)
tree36718e8d91b13b2714cbfe7877353ac7625f2f44 /crates/chat-server/src/maintenance.rs
parentdd1d5863ef865ebe29dc93d03ca6abc0aaf48bee (diff)
Package private chat for HTTPS and verify portable encrypted recovery
Diffstat (limited to 'crates/chat-server/src/maintenance.rs')
-rw-r--r--crates/chat-server/src/maintenance.rs25
1 files changed, 18 insertions, 7 deletions
diff --git a/crates/chat-server/src/maintenance.rs b/crates/chat-server/src/maintenance.rs
index eac689d..d416d73 100644
--- a/crates/chat-server/src/maintenance.rs
+++ b/crates/chat-server/src/maintenance.rs
@@ -45,13 +45,24 @@ pub(crate) fn fingerprint(store: &Store) -> Result<()> {
Ok(())
}
-pub(crate) fn reset(store: &mut Store, expected: &str, address: SocketAddr) -> Result<()> {
- ensure!(
- address.ip().is_loopback(),
- "Reset must use the local chat address"
- );
- let _port =
- TcpListener::bind(address).context("Stop the chat server before resetting its owner")?;
+pub(crate) fn reset(
+ store: &mut Store,
+ expected: &str,
+ address: SocketAddr,
+ proxy: bool,
+) -> Result<()> {
+ let _port = if proxy {
+ None
+ } else {
+ ensure!(
+ address.ip().is_loopback(),
+ "Reset must use the local chat address"
+ );
+ Some(
+ TcpListener::bind(address)
+ .context("Stop the chat server before resetting its owner")?,
+ )
+ };
store.reset_owner(expected)?;
writeln!(
std::io::stdout().lock(),