Commit a73c77bf authored by Andreas Traczyk's avatar Andreas Traczyk

upnp: fix C3853 with microsoft compiler

Change-Id: I6da65c9b61ea0def790710cb55120c0dab632fda
parent 1a3ab76f
...@@ -176,8 +176,8 @@ PUPnP::PUPnP() ...@@ -176,8 +176,8 @@ PUPnP::PUPnP()
// Handle successful downloads // Handle successful downloads
for (auto& item : finished) { for (auto& item : finished) {
auto result = item.get(); auto result = item.get();
if (not result.document or not validateIgd(result)) { if (not result->document or not validateIgd(*result)) {
cpDeviceList_.erase(result.location); cpDeviceList_.erase(result->location);
} }
} }
} }
...@@ -449,7 +449,7 @@ PUPnP::handleCtrlPtUPnPEvents(Upnp_EventType event_type, const void* event) ...@@ -449,7 +449,7 @@ PUPnP::handleCtrlPtUPnPEvents(Upnp_EventType event_type, const void* event)
// Check if we already downloaded the xml doc based on the igd location string. // Check if we already downloaded the xml doc based on the igd location string.
std::string igdLocationUrl {UpnpDiscovery_get_Location_cstr(d_event)}; std::string igdLocationUrl {UpnpDiscovery_get_Location_cstr(d_event)};
dwnldlXmlList_.emplace_back(dht::ThreadPool::io().get<IGDInfo>([this, location = std::move(igdLocationUrl)]{ dwnldlXmlList_.emplace_back(dht::ThreadPool::io().get<pIGDInfo>([this, location = std::move(igdLocationUrl)]{
IXML_Document* doc_container_ptr = nullptr; IXML_Document* doc_container_ptr = nullptr;
XMLDocument doc_desc_ptr(nullptr, ixmlDocument_free); XMLDocument doc_desc_ptr(nullptr, ixmlDocument_free);
int upnp_err = UpnpDownloadXmlDoc(location.c_str(), &doc_container_ptr); int upnp_err = UpnpDownloadXmlDoc(location.c_str(), &doc_container_ptr);
...@@ -459,8 +459,8 @@ PUPnP::handleCtrlPtUPnPEvents(Upnp_EventType event_type, const void* event) ...@@ -459,8 +459,8 @@ PUPnP::handleCtrlPtUPnPEvents(Upnp_EventType event_type, const void* event)
if (upnp_err != UPNP_E_SUCCESS or not doc_desc_ptr) if (upnp_err != UPNP_E_SUCCESS or not doc_desc_ptr)
JAMI_WARN("PUPnP: Error downloading device XML document -> %s", UpnpGetErrorMessage(upnp_err)); JAMI_WARN("PUPnP: Error downloading device XML document -> %s", UpnpGetErrorMessage(upnp_err));
else else
return IGDInfo {std::move(location), std::move(doc_desc_ptr)}; return std::make_unique<IGDInfo>(IGDInfo{ std::move(location), std::move(doc_desc_ptr) });
return IGDInfo {std::move(location), XMLDocument(nullptr, ixmlDocument_free)}; return std::make_unique<IGDInfo>(IGDInfo{ std::move(location), XMLDocument(nullptr, ixmlDocument_free) });
})); }));
break; break;
...@@ -925,4 +925,4 @@ PUPnP::actionAddPortMapping(const UPnPIGD& igd, const Mapping& mapping, UPnPProt ...@@ -925,4 +925,4 @@ PUPnP::actionAddPortMapping(const UPnPIGD& igd, const Mapping& mapping, UPnPProt
return true; return true;
} }
}} // namespace jami::upnp }} // namespace jami::upnp
\ No newline at end of file
...@@ -79,6 +79,7 @@ public: ...@@ -79,6 +79,7 @@ public:
std::string location; std::string location;
XMLDocument document; XMLDocument document;
}; };
using pIGDInfo = std::unique_ptr<IGDInfo>;
PUPnP(); PUPnP();
~PUPnP(); ~PUPnP();
...@@ -146,7 +147,7 @@ private: ...@@ -146,7 +147,7 @@ private:
std::map<std::string, std::shared_ptr<IGD>> validIgdList_; // Map of valid IGDs with their UDN (universal Id). std::map<std::string, std::shared_ptr<IGD>> validIgdList_; // Map of valid IGDs with their UDN (universal Id).
std::set<std::string> cpDeviceList_; // Control point device list containing the device ID and device subscription event url. std::set<std::string> cpDeviceList_; // Control point device list containing the device ID and device subscription event url.
std::list<std::future<IGDInfo>> dwnldlXmlList_; // List of shared_futures for blocking xml download function calls. std::list<std::future<pIGDInfo>> dwnldlXmlList_; // List of shared_futures for blocking xml download function calls.
std::mutex ctrlptMutex_; // Mutex for client handle protection. std::mutex ctrlptMutex_; // Mutex for client handle protection.
UpnpClient_Handle ctrlptHandle_ {-1}; // Control point handle. UpnpClient_Handle ctrlptHandle_ {-1}; // Control point handle.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment