PeerID 8/n: NoiseRateLimiter & FavoritesPersistenceService (#745)

This commit is contained in:
Islam
2025-10-03 11:32:13 +02:00
committed by GitHub
parent f2473f857b
commit 524a7e916b
5 changed files with 14 additions and 14 deletions
@@ -131,8 +131,8 @@ final class SecureNoiseSession: NoiseSession {
// MARK: - Rate Limiter
final class NoiseRateLimiter {
private var handshakeTimestamps: [String: [Date]] = [:] // peerID -> timestamps
private var messageTimestamps: [String: [Date]] = [:] // peerID -> timestamps
private var handshakeTimestamps: [PeerID: [Date]] = [:]
private var messageTimestamps: [PeerID: [Date]] = [:]
// Global rate limiting
private var globalHandshakeTimestamps: [Date] = []
@@ -140,7 +140,7 @@ final class NoiseRateLimiter {
private let queue = DispatchQueue(label: "chat.bitchat.noise.ratelimit", attributes: .concurrent)
func allowHandshake(from peerID: String) -> Bool {
func allowHandshake(from peerID: PeerID) -> Bool {
return queue.sync(flags: .barrier) {
let now = Date()
let oneMinuteAgo = now.addingTimeInterval(-60)
@@ -169,7 +169,7 @@ final class NoiseRateLimiter {
}
}
func allowMessage(from peerID: String) -> Bool {
func allowMessage(from peerID: PeerID) -> Bool {
return queue.sync(flags: .barrier) {
let now = Date()
let oneSecondAgo = now.addingTimeInterval(-1)
@@ -198,7 +198,7 @@ final class NoiseRateLimiter {
}
}
func reset(for peerID: String) {
func reset(for peerID: PeerID) {
queue.async(flags: .barrier) {
self.handshakeTimestamps.removeValue(forKey: peerID)
self.messageTimestamps.removeValue(forKey: peerID)