Skip to content
Snippets Groups Projects
Commit a8731ac7 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

upnp: cleanup. fix logs

Change-Id: I09f57d925b130103c036074929a438fca9815577
parent adac7cf2
No related branches found
No related tags found
No related merge requests found
...@@ -82,7 +82,7 @@ public: ...@@ -82,7 +82,7 @@ public:
static const char* getTypeStr(PortType type) { return type == PortType::UDP ? "UDP" : "TCP"; } static const char* getTypeStr(PortType type) { return type == PortType::UDP ? "UDP" : "TCP"; }
std::shared_ptr<IGD> getIgd() const; std::shared_ptr<IGD> getIgd() const;
NatProtocolType getProtocol() const; NatProtocolType getProtocol() const;
const char* getProtocolName() const; std::string_view getProtocolName() const;
bool isAvailable() const; bool isAvailable() const;
MappingState getState() const; MappingState getState() const;
const char* getStateStr() const; const char* getStateStr() const;
......
...@@ -139,6 +139,11 @@ public: ...@@ -139,6 +139,11 @@ public:
// Generate random port numbers // Generate random port numbers
static uint16_t generateRandomPort(PortType type, bool mustBeEven = false); static uint16_t generateRandomPort(PortType type, bool mustBeEven = false);
template <typename T>
inline void dispatch(T&& f) {
ctx->dispatch(std::move(f));
}
private: private:
// Initialization // Initialization
void init(); void init();
...@@ -288,10 +293,9 @@ private: ...@@ -288,10 +293,9 @@ private:
// Max open ports limit // Max open ports limit
int maxOpenPortLimit_[2] {8, 12}; int maxOpenPortLimit_[2] {8, 12};
//std::shared_ptr<Task> mappingListUpdateTimer_ {};
std::shared_ptr<asio::io_context> ctx; std::shared_ptr<asio::io_context> ctx;
std::shared_ptr<dht::log::Logger> logger_; std::shared_ptr<dht::log::Logger> logger_;
asio::steady_timer mappingListUpdateTimer_;// {}; asio::steady_timer mappingListUpdateTimer_;
// Current preferred IGD. Can be null if there is no valid IGD. // Current preferred IGD. Can be null if there is no valid IGD.
std::shared_ptr<IGD> preferredIgd_; std::shared_ptr<IGD> preferredIgd_;
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
namespace dhtnet { namespace dhtnet {
namespace upnp { namespace upnp {
using namespace std::literals;
Mapping::Mapping(PortType type, uint16_t portExternal, uint16_t portInternal, bool available) Mapping::Mapping(PortType type, uint16_t portExternal, uint16_t portInternal, bool available)
: type_(type) : type_(type)
, externalPort_(portExternal) , externalPort_(portExternal)
...@@ -282,16 +284,18 @@ Mapping::getProtocol() const ...@@ -282,16 +284,18 @@ Mapping::getProtocol() const
return igd_->getProtocol(); return igd_->getProtocol();
return NatProtocolType::UNKNOWN; return NatProtocolType::UNKNOWN;
} }
const char*
std::string_view
Mapping::getProtocolName() const Mapping::getProtocolName() const
{ {
if (igd_) { switch(getProtocol()) {
if (igd_->getProtocol() == NatProtocolType::NAT_PMP) case NatProtocolType::NAT_PMP:
return "NAT-PMP"; return "NAT-PMP"sv;
if (igd_->getProtocol() == NatProtocolType::PUPNP) case NatProtocolType::PUPNP:
return "PUPNP"; return "PUPNP"sv;
default:
return "UNKNOWN"sv;
} }
return "UNKNOWN";
} }
void void
......
This diff is collapsed.
...@@ -23,16 +23,20 @@ namespace upnp { ...@@ -23,16 +23,20 @@ namespace upnp {
Controller::Controller(const std::shared_ptr<UPnPContext>& ctx) Controller::Controller(const std::shared_ptr<UPnPContext>& ctx)
: upnpContext_(ctx) : upnpContext_(ctx)
{ {
upnpContext_->registerController(this); upnpContext_->dispatch([c=upnpContext_, this]{
// JAMI_DBG("Controller@%p: Created UPnP Controller session", this); c->registerController(this);
});
//if (upnpContext_->logger_) upnpContext_->logger_->debug("Controller@{}: Created UPnP Controller session", fmt::ptr(this));
} }
Controller::~Controller() Controller::~Controller()
{ {
// JAMI_DBG("Controller@%p: Destroying UPnP Controller session", this); //if (logger_) logger_->debug("Controller@{}: Destroying UPnP Controller session", fmt::ptr(this));
releaseAllMappings(); releaseAllMappings();
upnpContext_->unregisterController(this); upnpContext_->dispatch([c=upnpContext_, this]{
c->unregisterController(this);
});
} }
void void
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment