summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Parser/PayloadParsers/JingleS5BTransportMethodPayloadParser.cpp')
-rw-r--r--Swiften/Parser/PayloadParsers/JingleS5BTransportMethodPayloadParser.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/Swiften/Parser/PayloadParsers/JingleS5BTransportMethodPayloadParser.cpp b/Swiften/Parser/PayloadParsers/JingleS5BTransportMethodPayloadParser.cpp
index e639e20..a405e0e 100644
--- a/Swiften/Parser/PayloadParsers/JingleS5BTransportMethodPayloadParser.cpp
+++ b/Swiften/Parser/PayloadParsers/JingleS5BTransportMethodPayloadParser.cpp
@@ -5,7 +5,7 @@
5 */ 5 */
6 6
7/* 7/*
8 * Copyright (c) 2014-2016 Isode Limited. 8 * Copyright (c) 2014-2018 Isode Limited.
9 * All rights reserved. 9 * All rights reserved.
10 * See the COPYING file for more information. 10 * See the COPYING file for more information.
11 */ 11 */
@@ -13,6 +13,7 @@
13#include <Swiften/Parser/PayloadParsers/JingleS5BTransportMethodPayloadParser.h> 13#include <Swiften/Parser/PayloadParsers/JingleS5BTransportMethodPayloadParser.h>
14 14
15#include <boost/lexical_cast.hpp> 15#include <boost/lexical_cast.hpp>
16#include <boost/numeric/conversion/cast.hpp>
16#include <boost/optional.hpp> 17#include <boost/optional.hpp>
17 18
18#include <Swiften/Base/Log.h> 19#include <Swiften/Base/Log.h>
@@ -40,10 +41,10 @@ namespace Swift {
40 JingleS5BTransportPayload::Candidate candidate; 41 JingleS5BTransportPayload::Candidate candidate;
41 candidate.cid = attributes.getAttributeValue("cid").get_value_or(""); 42 candidate.cid = attributes.getAttributeValue("cid").get_value_or("");
42 43
43 int port = -1; 44 unsigned short port = 0;
44 try { 45 try {
45 port = boost::lexical_cast<int>(attributes.getAttributeValue("port").get_value_or("-1")); 46 port = boost::numeric_cast<unsigned short>(boost::lexical_cast<int>(attributes.getAttributeValue("port").get_value_or("0")));
46 } catch(boost::bad_lexical_cast &) { } 47 } catch(...) { }
47 candidate.hostPort = HostAddressPort(HostAddress::fromString(attributes.getAttributeValue("host").get_value_or("")).get_value_or(HostAddress()), port); 48 candidate.hostPort = HostAddressPort(HostAddress::fromString(attributes.getAttributeValue("host").get_value_or("")).get_value_or(HostAddress()), port);
48 candidate.jid = JID(attributes.getAttributeValue("jid").get_value_or("")); 49 candidate.jid = JID(attributes.getAttributeValue("jid").get_value_or(""));
49 int priority = -1; 50 int priority = -1;