<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    The certificates are those you sent me. Just checked, they're both
    valid.<br>
    <br>
    I've added your suggestion and also added the "connected" log
    message from PushAPNS.pm, no luck.<br>
    <br>
    <font face="monospace">2020-12-14 13:52:00.840238 +0100 info  main:
      - - XXXXXXXX msg queued apns notification for
      sandbox:XXXXXXXXXXXXXX<br>
      2020-12-14 13:52:01.579649 +0100 info  main: - - - msg apns
      processing queue for gateway.sandbox.push.apple.com<br>
      2020-12-14 13:52:01.740147 +0100 info  main: - - - msg apns
      connected to gateway.sandbox.push.apple.com, now establishing SSL
      security<br>
    </font><br>
    I tried reducing the APNS channels to "production", still no luck.<br>
    <br>
    I can see the socket getting created when following socket events:<br>
    <br>
    <font face="monospace">[root@ns34 ~]# ss -E | grep "17\.188"<br>
      tcp    UNCONN  0        0        146.0.237.226:59102       
      17.188.136.189:2195<br>
    </font><br>
    So the TLS init somehow fails in a way AnyEvent::Handle doesn't
    recognize as a failure / error.<br>
    <br>
    I've had a look at the AnyEvent::Handle documentation but cannot see
    anything we're doing wrong or missed regarding error handling.<br>
    <br>
    Maybe Apple is blocking me, dropping all packets? But wouldn't that
    trigger a timeout or TLS init error?<br>
    <br>
    Very strange. Any other ideas?<br>
    <br>
    Regards,<br>
    Michael<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 14.12.20 um 09:19 schrieb Mark
      Webb-Johnson:<br>
    </div>
    <blockquote type="cite"
      cite="mid:9EAE2052-E79A-4A36-87C3-29FAE4A3D847@webb-johnson.net">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      Do you have conf/ovms_apns_sandbox.pem file in place? Valid and
      not expired?
      <div class=""><br class="">
      </div>
      <div class="">I had a quick review, and it seems the main flow
        handles errors. Perhaps some other callback on the
        AnyEvent::Handle for an error condition is being missed? Or
        perhaps the AnyEvent::Handle could not be created at all. Can
        you try to add:</div>
      <div class=""><br class="">
      </div>
      <blockquote style="margin: 0 0 0 40px; border: none; padding:
        0px;" class="">
        <div class="">If (!defined $apns_handle)</div>
        <div class="">  {</div>
        <div class="">  AE::log error => "- - - msg apns handle could
          not be created”;</div>
        <div class="">  $apns_running = 0;</div>
        <div class="">  }</div>
      </blockquote>
      <div class="">
        <div><br class="">
        </div>
        <div>After the block of ‘$apns_handle = new AnyEvent::Handle(…’?</div>
        <div><br class="">
        </div>
        <div>Regards, Mark.</div>
        <div><br class="">
          <blockquote type="cite" class="">
            <div class="">On 14 Dec 2020, at 3:21 PM, Michael Balzer
              <<a href="mailto:dexter@expeedo.de" class=""
                moz-do-not-send="true">dexter@expeedo.de</a>> wrote:</div>
            <br class="Apple-interchange-newline">
            <div class="">
              <div class="content-isolator__container">
                <div class="protected-part">
                  <div class="protected-title">Signed PGP part</div>
                  <div class="protected-content">
                    <meta http-equiv="Content-Type" content="text/html;
                      charset=UTF-8" class="">
                    <div class=""> That's the strange part: I don't get
                      any error, and I don't get a timeout either.
                      That's what I meant by "fails in a way we don't
                      handle".<br class="">
                      <br class="">
                      This is the only log entry on "apns processing", I
                      get this once after restarting the server as soon
                      as the first APN is due for delivery:<br class="">
                      <font class="" face="monospace"><br class="">
                        2020-12-10 16:55:30.351530 +0100 info  main: - -
                        - msg apns processing queue for <a
                          href="http://gateway.sandbox.push.apple.com"
                          class="" moz-do-not-send="true">gateway.sandbox.push.apple.com</a></font><br
                        class="">
                      <br class="">
                      (still running server v2 due to lack of time)<br
                        class="">
                      <br class="">
                      After that, no more apns processing – I guess
                      because $apns_running never gets reset.<br
                        class="">
                      <br class="">
                      Any idea?<br class="">
                      <br class="">
                      Regards,<br class="">
                      Michael<br class="">
                      <br class="">
                      <br class="">
                      <div class="moz-cite-prefix">Am 14.12.20 um 07:17
                        schrieb Mark Webb-Johnson:<br class="">
                      </div>
                      <blockquote type="cite"
                        cite="mid:FFACA9C0-DE7C-45A2-BD55-E6B8B0E40462@webb-johnson.net"
                        class="">
                        <meta http-equiv="Content-Type"
                          content="text/html; charset=UTF-8" class="">
                        <div class=""><br class="">
                        </div>
                        Push notifications are still working ok for me.
                        What is the error you get back from the gateway?
                        <div class=""><br class="">
                        </div>
                        <div class="">We are using this protocol (see
                          apns_send function):</div>
                        <div class=""><br class="">
                        </div>
                        <blockquote style="margin: 0 0 0 40px; border:
                          none; padding: 0px;" class="">
                          <div class=""><a
href="https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/BinaryProviderAPI.html"
                              class="" moz-do-not-send="true">https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/BinaryProviderAPI.html</a></div>
                        </blockquote>
                        <div class="">
                          <div class=""><br class="">
                          </div>
                          <div class="">We need to convert to this one:</div>
                          <div class=""><br class="">
                          </div>
                        </div>
                        <blockquote style="margin: 0 0 0 40px; border:
                          none; padding: 0px;" class="">
                          <div class="">
                            <div class=""><a
href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns/"
                                class="" moz-do-not-send="true">https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns/</a></div>
                          </div>
                        </blockquote>
                        <div class="">
                          <div class="">
                            <div class=""><br class="">
                            </div>
                            <div class="">But have until the end of
                              March 2021 to do it. The switch is not
                              complex, and is probably slightly easier
                              for us. It becomes just a simple http
                              request, with pretty much the same payload
                              we currently use (in json format).</div>
                            <div class=""><br class="">
                            </div>
                            <div class="">Regards, Mark.</div>
                            <div class=""><br class="">
                              <blockquote type="cite" class="">
                                <div class="">On 11 Dec 2020, at 12:27
                                  AM, Michael Balzer <<a
                                    href="mailto:dexter@expeedo.de"
                                    class="" moz-do-not-send="true">dexter@expeedo.de</a>>
                                  wrote:</div>
                                <br class="Apple-interchange-newline">
                                <div class="">
                                  <div class="">
                                    <div
                                      class="content-isolator__container">
                                      <div class="protected-part">
                                        <div class="protected-title">Signed
                                          PGP part</div>
                                        <div class="protected-content">Mark,<br
                                            class="">
                                          <br class="">
                                          a user informed me he no
                                          longer gets any push
                                          notifications to iOS.<br
                                            class="">
                                          <br class="">
                                          Looking into the logs, it
                                          seems the initial connect to
                                          the gateway fails in a way the
                                          perl code does not handle.<br
                                            class="">
                                          <br class="">
                                          I've found this in the Apple
                                          forums: <a
                                            href="https://developer.apple.com/forums/thread/667248"
                                            class=""
                                            moz-do-not-send="true">https://developer.apple.com/forums/thread/667248</a><br
                                            class="">
                                          <br class="">
                                          It seems the protocol we use
                                          has been deprecated, but it
                                          should continue to work until
                                          March. Do you see a similar
                                          effect on your server?<br
                                            class="">
                                          <br class="">
                                          Regards,<br class="">
                                          Michael<br class="">
                                          <br class="">
                                          -- <br class="">
                                          Michael Balzer * Helkenberger
                                          Weg 9 * D-58256 Ennepetal<br
                                            class="">
                                          Fon 02333 / 833 5735 * Handy
                                          0176 / 206 989 26<br class="">
                                          <br class="">
                                          <br class="">
                                        </div>
                                      </div>
                                      <br class="">
                                      <iframe
                                        class="content-isolator__isolated-content"
                                        sandbox="allow-scripts"
                                        scrolling="auto"
                                        style="border:none;display:block;overflow:auto;"
data-src="data:text/html;charset=UTF-8;base64,PGlmcmFtZS1jb250ZW50IGRhdGEtaWZyYW1lLWhlaWdodD0idHJ1ZSI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188QlI+T3Ztc0RldiBtYWlsaW5nIGxpc3Q8QlI+T3Ztc0RldkBsaXN0cy5vcGVudmVoaWNsZXMuY29tPEJSPmh0dHA6Ly9saXN0cy5vcGVudmVoaWNsZXMuY29tL21haWxtYW4vbGlzdGluZm8vb3Ztc2RldjxCUj48L2lmcmFtZS1jb250ZW50Pg=="
                                        width="200" height="10"></iframe></div>
                                  </div>
                                </div>
                              </blockquote>
                            </div>
                            <br class="">
                          </div>
                        </div>
                        <br class="">
                        <fieldset class="mimeAttachmentHeader"></fieldset>
                        <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
                      </blockquote>
                      <br class="">
                      <pre class="moz-signature" cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
                    </div>
                  </div>
                </div>
                <br class="">
                <iframe class="content-isolator__isolated-content"
                  sandbox="allow-scripts" scrolling="auto"
                  style="border:none;display:block;overflow:auto;"
data-src="data:text/html;charset=UTF-8;base64,PGlmcmFtZS1jb250ZW50IGRhdGEtaWZyYW1lLWhlaWdodD0idHJ1ZSI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188QlI+T3Ztc0RldiBtYWlsaW5nIGxpc3Q8QlI+T3Ztc0RldkBsaXN0cy5vcGVudmVoaWNsZXMuY29tPEJSPmh0dHA6Ly9saXN0cy5vcGVudmVoaWNsZXMuY29tL21haWxtYW4vbGlzdGluZm8vb3Ztc2RldjxCUj48L2lmcmFtZS1jb250ZW50Pg=="
                  width="200" height="10"></iframe></div>
            </div>
          </blockquote>
        </div>
        <br class="">
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
  </body>
</html>