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()
// Handle successful downloads
for (auto& item : finished) {
auto result = item.get();
if (not result.document or not validateIgd(result)) {
cpDeviceList_.erase(result.location);
if (not result->document or not validateIgd(*result)) {
cpDeviceList_.erase(result->location);
}
}
}
......@@ -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.
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;
XMLDocument doc_desc_ptr(nullptr, ixmlDocument_free);
int upnp_err = UpnpDownloadXmlDoc(location.c_str(), &doc_container_ptr);
......@@ -459,8 +459,8 @@ PUPnP::handleCtrlPtUPnPEvents(Upnp_EventType event_type, const void* event)
if (upnp_err != UPNP_E_SUCCESS or not doc_desc_ptr)
JAMI_WARN("PUPnP: Error downloading device XML document -> %s", UpnpGetErrorMessage(upnp_err));
else
return 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), std::move(doc_desc_ptr) });
return std::make_unique<IGDInfo>(IGDInfo{ std::move(location), XMLDocument(nullptr, ixmlDocument_free) });
}));
break;
......@@ -925,4 +925,4 @@ PUPnP::actionAddPortMapping(const UPnPIGD& igd, const Mapping& mapping, UPnPProt
return true;
}
}} // namespace jami::upnp
\ No newline at end of file
}} // namespace jami::upnp
......@@ -79,6 +79,7 @@ public:
std::string location;
XMLDocument document;
};
using pIGDInfo = std::unique_ptr<IGDInfo>;
PUPnP();
~PUPnP();
......@@ -146,7 +147,7 @@ private:
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::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.
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