From 55c2e4f86e71ade502ce22730a44baacc21c097b Mon Sep 17 00:00:00 2001
From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
Date: Fri, 23 Feb 2018 11:43:27 -0500
Subject: [PATCH] ios: disable upnp port re-mapping on connectivityChanged

- ios invalidates udp sockets when entering the background, thus
  calls to connectivity changed after returning to the foreground
  will trigger a broken pipe signal
- this patch disables port re-mapping until libupnp is patched

Change-Id: I00e1bb93a83560af8f5505bed83f0aa63ab0a731
---
 src/client/configurationmanager.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/client/configurationmanager.cpp b/src/client/configurationmanager.cpp
index 0020ce4440..319d3e87d6 100644
--- a/src/client/configurationmanager.cpp
+++ b/src/client/configurationmanager.cpp
@@ -42,6 +42,10 @@
 #include "client/ring_signal.h"
 #include "upnp/upnp_context.h"
 
+#ifdef __APPLE__
+#include <TargetConditionals.h>
+#endif
+
 #ifdef RING_UWP
 #include "windirent.h"
 #else
@@ -865,11 +869,13 @@ connectivityChanged()
     RING_WARN("received connectivity changed - trying to re-connect enabled accounts");
 
     // reset the UPnP context
+#if !(defined(TARGET_OS_IOS) && TARGET_OS_IOS)
     try {
         ring::upnp::getUPnPContext()->connectivityChanged();
     } catch (std::runtime_error& e) {
         RING_ERR("UPnP context error: %s", e.what());
     }
+#endif
 
     for (const auto &account : ring::Manager::instance().getAllAccounts()) {
         account->connectivityChanged();
-- 
GitLab