diff options
| -rw-r--r-- | Nim/main.cpp | 5 | ||||
| -rw-r--r-- | Swiften/LinkLocal/OutgoingLinkLocalSession.cpp | 7 | ||||
| -rw-r--r-- | Swiften/LinkLocal/OutgoingLinkLocalSession.h | 1 | 
3 files changed, 11 insertions, 2 deletions
| diff --git a/Nim/main.cpp b/Nim/main.cpp index 2522a13..a9e9934 100644 --- a/Nim/main.cpp +++ b/Nim/main.cpp @@ -200,7 +200,7 @@ class Server {  						boost::shared_ptr<LinkLocalConnector> connector =  							getLinkLocalConnectorForJID(toJID);  						if (!connector) { -							boost::shared_ptr<LinkLocalConnector> connector( +							connector = boost::shared_ptr<LinkLocalConnector>(  									new LinkLocalConnector(  										toJID,   										linkLocalRoster_->getHostname(toJID),  @@ -210,6 +210,7 @@ class Server {  							connector->onConnectFinished.connect(  									boost::bind(&Server::handleConnectFinished, this, connector, _1));  							connectors_.push_back(connector); +							connector->connect();  						}  						connector->queueElement(element);  					} @@ -232,10 +233,10 @@ class Server {  						new OutgoingLinkLocalSession(  							selfJID_, connector->getRemoteJID(), connector->getConnection(),  							&payloadParserFactories_, &payloadSerializers_)); -				registerLinkLocalSession(outgoingSession);  				foreach(const boost::shared_ptr<Element> element, connector->getQueuedElements()) {  					outgoingSession->queueElement(element);  				} +				registerLinkLocalSession(outgoingSession);  			}  			connectors_.erase(std::remove(connectors_.begin(), connectors_.end(), connector), connectors_.end());  		} diff --git a/Swiften/LinkLocal/OutgoingLinkLocalSession.cpp b/Swiften/LinkLocal/OutgoingLinkLocalSession.cpp index 4118e34..1c2fefb 100644 --- a/Swiften/LinkLocal/OutgoingLinkLocalSession.cpp +++ b/Swiften/LinkLocal/OutgoingLinkLocalSession.cpp @@ -2,6 +2,7 @@  #include <boost/bind.hpp> +#include "Swiften/StreamStack/XMPPLayer.h"  #include "Swiften/Elements/ProtocolHeader.h"  #include "Swiften/Elements/StreamFeatures.h"  #include "Swiften/Elements/IQ.h" @@ -19,6 +20,12 @@ OutgoingLinkLocalSession::OutgoingLinkLocalSession(  	setRemoteJID(remoteJID);  } +void OutgoingLinkLocalSession::handleSessionStarted() { +	ProtocolHeader header; +	header.setFrom(getLocalJID()); +	getXMPPLayer()->writeHeader(header); +} +  void OutgoingLinkLocalSession::handleStreamStart(const ProtocolHeader&) {  	foreach(const boost::shared_ptr<Element>& stanza, queuedElements_) {  		sendElement(stanza); diff --git a/Swiften/LinkLocal/OutgoingLinkLocalSession.h b/Swiften/LinkLocal/OutgoingLinkLocalSession.h index 904a9d3..32f78e4 100644 --- a/Swiften/LinkLocal/OutgoingLinkLocalSession.h +++ b/Swiften/LinkLocal/OutgoingLinkLocalSession.h @@ -27,6 +27,7 @@ namespace Swift {  			void queueElement(boost::shared_ptr<Element> element);  		private: +			void handleSessionStarted();  			void handleElement(boost::shared_ptr<Element>);  			void handleStreamStart(const ProtocolHeader&); | 
 Swift
 Swift