From 04650efd699f68a9a07db31ab6a924113cdf6840 Mon Sep 17 00:00:00 2001
From: Tristan Matthews <tristan.matthews@savoirfairelinux.com>
Date: Thu, 15 Aug 2013 17:57:13 -0400
Subject: [PATCH] * #28529: sip: fix compilation for gcc 4.6 and off-by-one
 error

---
 daemon/src/sip/sipaccount.cpp | 6 ++++--
 daemon/src/sip/sipaccount.h   | 3 +--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/daemon/src/sip/sipaccount.cpp b/daemon/src/sip/sipaccount.cpp
index 44a7aca2f2..d5eae7cce3 100644
--- a/daemon/src/sip/sipaccount.cpp
+++ b/daemon/src/sip/sipaccount.cpp
@@ -47,6 +47,8 @@
 #include <sstream>
 #include <algorithm>
 #include <cstdlib>
+#include <array>
+#include <memory>
 
 #ifdef SFL_VIDEO
 #include "video/libav_utils.h"
@@ -64,7 +66,7 @@ const char *const TRUE_STR = "true";
 const char *const FALSE_STR = "false";
 }
 
-bool SIPAccount::portsInUse_[UINT16_MAX];
+bool SIPAccount::portsInUse_[1 << 16];
 
 SIPAccount::SIPAccount(const std::string& accountID)
     : Account(accountID)
@@ -119,7 +121,7 @@ SIPAccount::SIPAccount(const std::string& accountID)
     , via_addr_()
     , audioPortRange_({16384, 32766})
 #ifdef SFL_VIDEO
-    , videoPortRange_({49152, UINT16_MAX - 2})
+    , videoPortRange_({49152, (1 << 16) - 2})
 #endif
 {
     via_addr_.host.ptr = 0;
diff --git a/daemon/src/sip/sipaccount.h b/daemon/src/sip/sipaccount.h
index baafe83b4b..fa1cc6e268 100644
--- a/daemon/src/sip/sipaccount.h
+++ b/daemon/src/sip/sipaccount.h
@@ -37,7 +37,6 @@
 
 #include <vector>
 #include <map>
-#include <cstdint>
 #include "account.h"
 #include "pjsip/sip_transport_tls.h"
 #include "pjsip/sip_types.h"
@@ -789,7 +788,7 @@ class SIPAccount : public Account {
          */
         std::pair<uint16_t, uint16_t> videoPortRange_;
 #endif
-        static bool portsInUse_[UINT16_MAX];
+        static bool portsInUse_[1 << 16];
         static uint16_t getRandomEvenNumber(const std::pair<uint16_t, uint16_t> &range);
 
 };
-- 
GitLab