/* * Copyright (c) 2011-2018 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #include #include #include #include #include #include #include namespace Swift { class NullNATTraversalGetPublicIPRequest : public NATTraversalGetPublicIPRequest { public: NullNATTraversalGetPublicIPRequest(EventLoop* eventLoop) : eventLoop(eventLoop) { } virtual void start() { eventLoop->postEvent(boost::bind(boost::ref(onResult), boost::optional())); } virtual void stop() { } private: EventLoop* eventLoop; }; class NullNATTraversalForwardPortRequest : public NATTraversalForwardPortRequest { public: NullNATTraversalForwardPortRequest(EventLoop* eventLoop) : eventLoop(eventLoop) { } virtual void start() { eventLoop->postEvent(boost::bind(boost::ref(onResult), boost::optional())); } virtual void stop() { } private: EventLoop* eventLoop; }; class NullNATTraversalRemovePortForwardingRequest : public NATTraversalRemovePortForwardingRequest { public: NullNATTraversalRemovePortForwardingRequest(EventLoop* eventLoop) : eventLoop(eventLoop) { } virtual void start() { eventLoop->postEvent(boost::bind(boost::ref(onResult), boost::optional(true))); } virtual void stop() { } private: EventLoop* eventLoop; }; NullNATTraverser::NullNATTraverser(EventLoop* eventLoop) : eventLoop(eventLoop) { } std::shared_ptr NullNATTraverser::createGetPublicIPRequest() { return std::make_shared(eventLoop); } std::shared_ptr NullNATTraverser::createForwardPortRequest(unsigned short, unsigned short) { return std::make_shared(eventLoop); } std::shared_ptr NullNATTraverser::createRemovePortForwardingRequest(unsigned short, unsigned short) { return std::make_shared(eventLoop); } }