encryptWithPassword возвращён к SHA256+rawDeflate (iOS-only данные)
Добавлен encryptWithPasswordDesktopCompat (SHA1+zlibDeflate) для кросс-платформенных данных (aesChachaKey, аватар) 3 вызова в SessionManager переведены на desktop-compatible путь Добавлен Notification.Name.profileDidUpdate для мгновенного обновления имени в Settings Удалены debug-логи из CryptoManager и SessionManager
This commit is contained in:
@@ -46,6 +46,7 @@ final class ProtocolManager: @unchecked Sendable {
|
||||
var onSearchResult: ((PacketSearch) -> Void)?
|
||||
var onTypingReceived: ((PacketTyping) -> Void)?
|
||||
var onSyncReceived: ((PacketSync) -> Void)?
|
||||
var onDeviceNewReceived: ((PacketDeviceNew) -> Void)?
|
||||
var onHandshakeCompleted: ((PacketHandshake) -> Void)?
|
||||
|
||||
// MARK: - Private
|
||||
@@ -98,6 +99,9 @@ final class ProtocolManager: @unchecked Sendable {
|
||||
connectionState = .disconnected
|
||||
savedPublicKey = nil
|
||||
savedPrivateHash = nil
|
||||
Task { @MainActor in
|
||||
TransportManager.shared.reset()
|
||||
}
|
||||
}
|
||||
|
||||
/// Immediately reconnect after returning from background, bypassing backoff.
|
||||
@@ -292,10 +296,21 @@ final class ProtocolManager: @unchecked Sendable {
|
||||
if let p = packet as? PacketDelivery {
|
||||
onDeliveryReceived?(p)
|
||||
}
|
||||
case 0x09:
|
||||
if let p = packet as? PacketDeviceNew {
|
||||
onDeviceNewReceived?(p)
|
||||
}
|
||||
case 0x0B:
|
||||
if let p = packet as? PacketTyping {
|
||||
onTypingReceived?(p)
|
||||
}
|
||||
case 0x0F:
|
||||
if let p = packet as? PacketRequestTransport {
|
||||
Self.logger.info("📥 Transport server: \(p.transportServer)")
|
||||
Task { @MainActor in
|
||||
TransportManager.shared.setTransportServer(p.transportServer)
|
||||
}
|
||||
}
|
||||
case 0x17:
|
||||
if let p = packet as? PacketDeviceList {
|
||||
handleDeviceList(p)
|
||||
@@ -350,6 +365,10 @@ final class ProtocolManager: @unchecked Sendable {
|
||||
|
||||
flushPacketQueue()
|
||||
startHeartbeat(interval: packet.heartbeatInterval)
|
||||
|
||||
// Desktop parity: request transport server URL after handshake.
|
||||
sendPacketDirect(PacketRequestTransport())
|
||||
|
||||
onHandshakeCompleted?(packet)
|
||||
|
||||
case .needDeviceVerification:
|
||||
|
||||
Reference in New Issue
Block a user