Updated with latest libSession fixes, minor logging tweaks

pull/976/head
Morgan Pretty 3 weeks ago
parent a5095b5965
commit afa93d3320

@ -1 +1 @@
Subproject commit 702302626d401d6954e67b60b28805c785be7a7c Subproject commit 714230c0c8867ac8662603fd6debb5b4c4369ef1

@ -8034,7 +8034,7 @@
CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES; CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
CURRENT_PROJECT_VERSION = 448; CURRENT_PROJECT_VERSION = 449;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES; ENABLE_TESTABILITY = YES;
@ -8112,7 +8112,7 @@
CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES; CLANG_WARN__ARC_BRIDGE_CAST_NONARC = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_IDENTITY = "iPhone Distribution";
CURRENT_PROJECT_VERSION = 448; CURRENT_PROJECT_VERSION = 449;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES; GCC_NO_COMMON_BLOCKS = YES;

@ -21,20 +21,26 @@ public enum FailedMessageSendsJob: JobExecutor {
var attachmentChangeCount: Int = -1 var attachmentChangeCount: Int = -1
// Update all 'sending' message states to 'failed' // Update all 'sending' message states to 'failed'
dependencies.storage.write { db in dependencies.storage
let sendChangeCount: Int = try RecipientState .writePublisher(using: dependencies) { db in
.filter(RecipientState.Columns.state == RecipientState.State.sending) let sendChangeCount: Int = try RecipientState
.updateAll(db, RecipientState.Columns.state.set(to: RecipientState.State.failed)) .filter(RecipientState.Columns.state == RecipientState.State.sending)
let syncChangeCount: Int = try RecipientState .updateAll(db, RecipientState.Columns.state.set(to: RecipientState.State.failed))
.filter(RecipientState.Columns.state == RecipientState.State.syncing) let syncChangeCount: Int = try RecipientState
.updateAll(db, RecipientState.Columns.state.set(to: RecipientState.State.failedToSync)) .filter(RecipientState.Columns.state == RecipientState.State.syncing)
attachmentChangeCount = try Attachment .updateAll(db, RecipientState.Columns.state.set(to: RecipientState.State.failedToSync))
.filter(Attachment.Columns.state == Attachment.State.uploading) attachmentChangeCount = try Attachment
.updateAll(db, Attachment.Columns.state.set(to: Attachment.State.failedUpload)) .filter(Attachment.Columns.state == Attachment.State.uploading)
changeCount = (sendChangeCount + syncChangeCount) .updateAll(db, Attachment.Columns.state.set(to: Attachment.State.failedUpload))
} changeCount = (sendChangeCount + syncChangeCount)
}
SNLog("[FailedMessageSendsJob] Marked \(changeCount) message\(changeCount == 1 ? "" : "s") as failed (\(attachmentChangeCount) upload\(attachmentChangeCount == 1 ? "" : "s") cancelled)") .subscribe(on: queue, using: dependencies)
success(job, false, dependencies) .receive(on: queue, using: dependencies)
.sinkUntilComplete(
receiveCompletion: { _ in
SNLog("[FailedMessageSendsJob] Marked \(changeCount) message\(changeCount == 1 ? "" : "s") as failed (\(attachmentChangeCount) upload\(attachmentChangeCount == 1 ? "" : "s") cancelled)")
success(job, false, dependencies)
}
)
} }
} }

@ -71,7 +71,7 @@ public final class CurrentUserPoller: Poller {
let drainBehaviour: Atomic<SwarmDrainBehaviour> = drainBehaviour.wrappedValue[publicKey], let drainBehaviour: Atomic<SwarmDrainBehaviour> = drainBehaviour.wrappedValue[publicKey],
case .limitedReuse(_, .some(let targetSnode), _, _, _) = drainBehaviour.wrappedValue case .limitedReuse(_, .some(let targetSnode), _, _, _) = drainBehaviour.wrappedValue
{ {
SNLog("Main Poller polling \(targetSnode) failed with error: \(error); switching to next snode.") SNLog("Main Poller polling \(targetSnode) failed with error: \(period: "\(error)"); switching to next snode.")
drainBehaviour.mutate { $0 = $0.clearTargetSnode() } drainBehaviour.mutate { $0 = $0.clearTargetSnode() }
} }
else { else {

@ -136,12 +136,16 @@ public extension LibSession {
guard let network: UnsafeMutablePointer<network_object> = networkCache.wrappedValue else { return } guard let network: UnsafeMutablePointer<network_object> = networkCache.wrappedValue else { return }
network_close_connections(network) network_suspend(network)
} }
static func resumeNetworkAccess() { static func resumeNetworkAccess() {
isSuspended.mutate { $0 = false } isSuspended.mutate { $0 = false }
Log.info("[LibSession] resumeNetworkAccess called.") Log.info("[LibSession] resumeNetworkAccess called.")
guard let network: UnsafeMutablePointer<network_object> = networkCache.wrappedValue else { return }
network_resume(network)
} }
static func clearSnodeCache() { static func clearSnodeCache() {

@ -79,11 +79,15 @@ public extension String {
public extension String.StringInterpolation { public extension String.StringInterpolation {
mutating func appendInterpolation(plural value: Int) { mutating func appendInterpolation(plural value: Int) {
appendInterpolation(value == 1 ? "" : "s") appendInterpolation(value == 1 ? "" : "s") // stringlint:disable
}
public mutating func appendInterpolation(period value: String) {
appendInterpolation(value.hasSuffix(".") ? "" : ".") // stringlint:disable
} }
mutating func appendInterpolation(_ value: TimeUnit, unit: TimeUnit.Unit, resolution: Int = 2) { mutating func appendInterpolation(_ value: TimeUnit, unit: TimeUnit.Unit, resolution: Int = 2) {
appendLiteral("\(TimeUnit(value, unit: unit, resolution: resolution))") appendLiteral("\(TimeUnit(value, unit: unit, resolution: resolution))") // stringlint:disable
} }
mutating func appendInterpolation(_ value: Int, format: String) { mutating func appendInterpolation(_ value: Int, format: String) {

Loading…
Cancel
Save