/* * Copyright (c) 2011 Remko Tronçon * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include #include #include namespace Swift { class MiniUPnPInterface : public NATTraversalInterface { public: MiniUPnPInterface(); ~MiniUPnPInterface(); virtual bool isAvailable() { return isValid; } boost::optional getPublicIP(); boost::optional addPortForward(int localPort, int publicPort); bool removePortForward(const NATPortMapping&); private: bool isValid; std::string localAddress; UPNPDev* deviceList; UPNPUrls urls; IGDdatas data; }; }