diff options
Diffstat (limited to 'Swiften/Serializer')
-rw-r--r-- | Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp | 9 | ||||
-rw-r--r-- | Swiften/Serializer/PayloadSerializers/UnitTest/JingleSerializersTest.cpp | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp index c753839..220d8dd 100644 --- a/Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp +++ b/Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.cpp @@ -1,12 +1,18 @@ /* * Copyright (c) 2011 Tobias Markmann * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ +/* + * Copyright (c) 2015 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + #include <Swiften/Serializer/PayloadSerializers/JingleS5BTransportPayloadSerializer.h> #include <boost/shared_ptr.hpp> #include <boost/smart_ptr/make_shared.hpp> #include <boost/lexical_cast.hpp> @@ -22,12 +28,15 @@ JingleS5BTransportPayloadSerializer::JingleS5BTransportPayloadSerializer() { } std::string JingleS5BTransportPayloadSerializer::serializePayload(boost::shared_ptr<JingleS5BTransportPayload> payload) const { XMLElement payloadXML("transport", "urn:xmpp:jingle:transports:s5b:1"); payloadXML.setAttribute("sid", payload->getSessionID()); payloadXML.setAttribute("mode", modeToString(payload->getMode())); + if (!payload->getDstAddr().empty()) { + payloadXML.setAttribute("dstaddr", payload->getDstAddr()); + } foreach(JingleS5BTransportPayload::Candidate candidate, payload->getCandidates()) { boost::shared_ptr<XMLElement> candidateXML = boost::make_shared<XMLElement>("candidate"); candidateXML->setAttribute("cid", candidate.cid); candidateXML->setAttribute("host", candidate.hostPort.getAddress().toString()); candidateXML->setAttribute("jid", candidate.jid.toString()); diff --git a/Swiften/Serializer/PayloadSerializers/UnitTest/JingleSerializersTest.cpp b/Swiften/Serializer/PayloadSerializers/UnitTest/JingleSerializersTest.cpp index 722c039..8d5bcb7 100644 --- a/Swiften/Serializer/PayloadSerializers/UnitTest/JingleSerializersTest.cpp +++ b/Swiften/Serializer/PayloadSerializers/UnitTest/JingleSerializersTest.cpp @@ -374,12 +374,13 @@ class JingleSerializersTest : public CppUnit::TestFixture { " action=\"session-initiate\"" " initiator=\"romeo@montague.lit/orchard\"" " sid=\"a73sjjvkla37jfea\"" " xmlns=\"urn:xmpp:jingle:1\">" "<content creator=\"initiator\" name=\"ex\">" "<transport" + " dstaddr=\"1a12fb7bc625e55f3ed5b29a53dbe0e4aa7d80ba\"" " mode=\"tcp\"" " sid=\"vj3hs98y\"" " xmlns=\"urn:xmpp:jingle:transports:s5b:1\">" "<candidate cid=\"hft54dqy\"" " host=\"192.168.4.1\"" " jid=\"romeo@montague.lit/orchard\"" @@ -404,12 +405,13 @@ class JingleSerializersTest : public CppUnit::TestFixture { JingleContentPayload::ref content = boost::make_shared<JingleContentPayload>(); content->setCreator(JingleContentPayload::InitiatorCreator); content->setName("ex"); JingleS5BTransportPayload::ref transport = boost::make_shared<JingleS5BTransportPayload>(); transport->setMode(JingleS5BTransportPayload::TCPMode); + transport->setDstAddr("1a12fb7bc625e55f3ed5b29a53dbe0e4aa7d80ba"); transport->setSessionID("vj3hs98y"); JingleS5BTransportPayload::Candidate candidate1; candidate1.cid = "hft54dqy"; candidate1.hostPort = HostAddressPort(HostAddress("192.168.4.1"), 5086); candidate1.jid = JID("romeo@montague.lit/orchard"); |