diff options
Diffstat (limited to 'Swiften/Network/PlatformNATTraversalWorker.cpp')
| -rw-r--r-- | Swiften/Network/PlatformNATTraversalWorker.cpp | 27 | 
1 files changed, 22 insertions, 5 deletions
| diff --git a/Swiften/Network/PlatformNATTraversalWorker.cpp b/Swiften/Network/PlatformNATTraversalWorker.cpp index eeecb38..40d6da6 100644 --- a/Swiften/Network/PlatformNATTraversalWorker.cpp +++ b/Swiften/Network/PlatformNATTraversalWorker.cpp @@ -50,10 +50,14 @@ class PlatformNATTraversalGetPublicIPRequest : public NATTraversalGetPublicIPReq  		PlatformNATTraversalGetPublicIPRequest(PlatformNATTraversalWorker* worker) : PlatformNATTraversalRequest(worker) {  		} -		virtual void run() { +		virtual void start() {  			doRun();  		} +		virtual void stop() { +			// TODO +		} +  		virtual void runBlocking() {  			onResult(getNATTraversalInterface()->getPublicIP());  		} @@ -64,10 +68,14 @@ class PlatformNATTraversalForwardPortRequest : public NATTraversalForwardPortReq  		PlatformNATTraversalForwardPortRequest(PlatformNATTraversalWorker* worker, unsigned int localIP, unsigned int publicIP) : PlatformNATTraversalRequest(worker), localIP(localIP), publicIP(publicIP) {  		} -		virtual void run() { +		virtual void start() {  			doRun();  		} +		virtual void stop() { +			// TODO +		} +  		virtual void runBlocking() {  			onResult(getNATTraversalInterface()->addPortForward(boost::numeric_cast<int>(localIP), boost::numeric_cast<int>(publicIP)));  		} @@ -82,10 +90,14 @@ class PlatformNATTraversalRemovePortForwardingRequest : public NATTraversalRemov  		PlatformNATTraversalRemovePortForwardingRequest(PlatformNATTraversalWorker* worker, const NATPortMapping& mapping) : PlatformNATTraversalRequest(worker), mapping(mapping) {  		} -		virtual void run() { +		virtual void start() {  			doRun();  		} +		virtual void stop() { +			// TODO +		} +  		virtual void runBlocking() {  			onResult(getNATTraversalInterface()->removePortForward(mapping));  		} @@ -96,7 +108,8 @@ class PlatformNATTraversalRemovePortForwardingRequest : public NATTraversalRemov  PlatformNATTraversalWorker::PlatformNATTraversalWorker(EventLoop* eventLoop) : eventLoop(eventLoop), stopRequested(false), natPMPSupported(boost::logic::indeterminate), natPMPInterface(NULL), miniUPnPSupported(boost::logic::indeterminate), miniUPnPInterface(NULL) {  	nullNATTraversalInterface = new NullNATTraversalInterface(); -	thread = new boost::thread(boost::bind(&PlatformNATTraversalWorker::run, this)); +	// FIXME: This should be done from start(), and the current start() should be an internal method +	thread = new boost::thread(boost::bind(&PlatformNATTraversalWorker::start, this));  }  PlatformNATTraversalWorker::~PlatformNATTraversalWorker() { @@ -143,7 +156,7 @@ boost::shared_ptr<NATTraversalRemovePortForwardingRequest> PlatformNATTraversalW  	return boost::make_shared<PlatformNATTraversalRemovePortForwardingRequest>(this, mapping);  } -void PlatformNATTraversalWorker::run() { +void PlatformNATTraversalWorker::start() {  	while (!stopRequested) {  		PlatformNATTraversalRequest::ref request;  		{ @@ -162,6 +175,10 @@ void PlatformNATTraversalWorker::run() {  	}  } +void PlatformNATTraversalWorker::stop() { +	// TODO +} +  void PlatformNATTraversalWorker::addRequestToQueue(PlatformNATTraversalRequest::ref request) {  	{  		boost::lock_guard<boost::mutex> lock(queueMutex); | 
 Swift
 Swift