add upnp/natpmp support

Change-Id: I4945a7df3a30cb39d81a33fc7a32e9fea600bdff
diff --git a/src/upnp/protocol/upnp_protocol.h b/src/upnp/protocol/upnp_protocol.h
index ce891e1..3dde4ab 100644
--- a/src/upnp/protocol/upnp_protocol.h
+++ b/src/upnp/protocol/upnp_protocol.h
@@ -16,7 +16,8 @@
  */
 #pragma once
 
-#include "igd.h"
+#include "./igd.h"
+#include "upnp/upnp_context.h"
 #include "upnp/mapping.h"
 #include "ip_utils.h"
 
@@ -48,7 +49,7 @@
 public:
     enum class UpnpError : int { INVALID_ERR = -1, ERROR_OK, CONFLICT_IN_MAPPING };
 
-    UPnPProtocol() {};
+    UPnPProtocol(const std::shared_ptr<dht::log::Logger>& logger) : logger_(logger) {};
     virtual ~UPnPProtocol() {};
 
     // Get protocol type.
@@ -93,6 +94,8 @@
 
     // Terminate
     virtual void terminate() = 0;
+
+    std::shared_ptr<dht::log::Logger> logger_;
 };
 
 } // namespace upnp