From ef4f68595f6b7218c46ec49c8936c1d36b065727 Mon Sep 17 00:00:00 2001 From: vladgaman Date: Thu, 11 May 2017 14:36:56 +0100 Subject: [PATCH 1/3] Fixed an issue where sending batched notification could potentially not send a notification if one of the registration ids is not valid --- PushSharp.Apple/ApnsConnection.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/PushSharp.Apple/ApnsConnection.cs b/PushSharp.Apple/ApnsConnection.cs index 0908b166..bfad52cf 100644 --- a/PushSharp.Apple/ApnsConnection.cs +++ b/PushSharp.Apple/ApnsConnection.cs @@ -154,7 +154,12 @@ async Task SendBatch () } foreach (var n in toSend) - sent.Add (new SentNotification (n)); + { + if (!n.Notification.IsDeviceRegistrationIdValid()) + n.CompleteFailed(new ApnsNotificationException(ApnsNotificationErrorStatusCode.ConnectionError, n.Notification)); + else + sent.Add(new SentNotification(n)); + } } } catch (Exception ex) { From 9791b24ca98acb608453a7caf9820a9e6d24ee07 Mon Sep 17 00:00:00 2001 From: vladgaman Date: Thu, 11 May 2017 15:29:14 +0100 Subject: [PATCH 2/3] Fixed issue with sending batched notifications --- PushSharp.Apple/ApnsConnection.cs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/PushSharp.Apple/ApnsConnection.cs b/PushSharp.Apple/ApnsConnection.cs index bfad52cf..899e4708 100644 --- a/PushSharp.Apple/ApnsConnection.cs +++ b/PushSharp.Apple/ApnsConnection.cs @@ -154,18 +154,24 @@ async Task SendBatch () } foreach (var n in toSend) - { - if (!n.Notification.IsDeviceRegistrationIdValid()) - n.CompleteFailed(new ApnsNotificationException(ApnsNotificationErrorStatusCode.ConnectionError, n.Notification)); - else - sent.Add(new SentNotification(n)); - } + sent.Add(new SentNotification(n)); } } catch (Exception ex) { Log.Error ("APNS-CLIENT[{0}]: Send Batch Error: Batch ID={1}, Error={2}", id, batchId, ex); + var errorNotificationToSend = new List(); + foreach (var n in toSend) - n.CompleteFailed (new ApnsNotificationException (ApnsNotificationErrorStatusCode.ConnectionError, n.Notification, ex)); + { + if (!n.Notification.IsDeviceRegistrationIdValid()) + errorNotificationToSend.Add(n); + else + notifications.Enqueue(n); + } + + foreach (var n in errorNotificationToSend) + n.CompleteFailed(new ApnsNotificationException(ApnsNotificationErrorStatusCode.ConnectionError, n.Notification, ex)); + } Log.Info ("APNS-Client[{0}]: Sent Batch, waiting for possible response...", id); From 7a6079eb375b65a05e7b81c00a1cc1f52bcd1e2a Mon Sep 17 00:00:00 2001 From: Vlad Gaman Date: Thu, 19 Oct 2017 17:03:33 +0100 Subject: [PATCH 3/3] Added a lock when dequeuing from notifications queue --- .gitignore | 4 ++++ PushSharp.4.0.11.nupkg | Bin 0 -> 67101 bytes PushSharp.Apple/ApnsConnection.cs | 10 +++++++--- 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 PushSharp.4.0.11.nupkg diff --git a/.gitignore b/.gitignore index b8dbc72c..30fb7f3d 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,7 @@ node_modules/ .vs/ settings.json +/PushSharp.1.0.6.nupkg +/PushSharp.4.0.10.1.nupkg +/PushSharp.Core.1.0.6340.27706.nupkg +/PushSharp.Apple.1.0.6340.27706.nupkg diff --git a/PushSharp.4.0.11.nupkg b/PushSharp.4.0.11.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..3516b82cfd0f3237b242d4682d2d9bc40df0f3b8 GIT binary patch literal 67101 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

yQ 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 NnSo&^6EN*F006?NNOb@J literal 0 HcmV?d00001 diff --git a/PushSharp.Apple/ApnsConnection.cs b/PushSharp.Apple/ApnsConnection.cs index 899e4708..2d27f85b 100644 --- a/PushSharp.Apple/ApnsConnection.cs +++ b/PushSharp.Apple/ApnsConnection.cs @@ -119,9 +119,13 @@ async Task SendBatch () // Let's store the batch items to send internally var toSend = new List (); - while (notifications.Count > 0 && toSend.Count < Configuration.InternalBatchSize) { - var n = notifications.Dequeue (); - toSend.Add (n); + lock (notificationBatchQueueLock) + { + while (notifications.Count > 0 && toSend.Count < Configuration.InternalBatchSize) + { + var n = notifications.Dequeue (); + toSend.Add(n); + } }