/* * 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 // This has to be included after the previous headers, because of WIN32 macro // being defined somewhere. #include namespace Swift { class NATPMPInterface : public NATTraversalInterface { public: NATPMPInterface(); ~NATPMPInterface(); virtual bool isAvailable(); virtual boost::optional getPublicIP(); virtual boost::optional addPortForward(int localPort, int publicPort); virtual bool removePortForward(const NATPortMapping&); private: natpmp_t natpmp; }; }