From 97c239337052035377f6d84cc2b48eaba1c58f71 Mon Sep 17 00:00:00 2001 From: jack Date: Fri, 25 Jul 2025 16:12:36 +0200 Subject: [PATCH] Fix lazy handshake behavior and re-enable cover traffic - Re-enable cover traffic for privacy protection - Start handshake immediately when opening PM conversation - Remove handshake request system notifications --- bitchat/Services/BluetoothMeshService.swift | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/bitchat/Services/BluetoothMeshService.swift b/bitchat/Services/BluetoothMeshService.swift index 11ec050e..f14b56a8 100644 --- a/bitchat/Services/BluetoothMeshService.swift +++ b/bitchat/Services/BluetoothMeshService.swift @@ -1169,12 +1169,10 @@ class BluetoothMeshService: NSObject { // Start cover traffic for privacy (disabled by default for now) // TODO: Make this configurable in settings - let coverTrafficEnabled = false + let coverTrafficEnabled = true if coverTrafficEnabled { SecureLogger.log("Cover traffic enabled", category: SecureLogger.security, level: .info) startCoverTraffic() - } else { - SecureLogger.log("Cover traffic disabled", category: SecureLogger.security, level: .info) } } @@ -1637,14 +1635,9 @@ class BluetoothMeshService: NSObject { noiseSessionStates[peerID] = .handshakeQueued } - // Apply tie-breaker logic for handshake initiation - if myPeerID < peerID { - // We have lower ID, initiate handshake - initiateNoiseHandshake(with: peerID) - } else { - // We have higher ID, send targeted identity announce to prompt them to initiate - sendNoiseIdentityAnnounce(to: peerID) - } + // Always initiate handshake when triggered by UI + // This ensures immediate handshake when opening PM + initiateNoiseHandshake(with: peerID) } func getPeerRSSI() -> [String: NSNumber] { @@ -5753,7 +5746,9 @@ extension BluetoothMeshService: CBPeripheralManagerDelegate { SecureLogger.log("Received handshake request from \(request.requesterID) (\(request.requesterNickname)) with \(request.pendingMessageCount) pending messages", category: SecureLogger.noise, level: .info) - // Notify UI about pending messages + // Don't show handshake request notification in UI + // User requested to remove this notification + /* DispatchQueue.main.async { [weak self] in if let chatVM = self?.delegate as? ChatViewModel { // Notify the UI that someone wants to send messages @@ -5762,6 +5757,7 @@ extension BluetoothMeshService: CBPeripheralManagerDelegate { pendingCount: request.pendingMessageCount) } } + */ // Check if we already have a session if noiseService.hasEstablishedSession(with: peerID) {