diff --git a/src/sip/sipvoiplink.cpp b/src/sip/sipvoiplink.cpp index 78da8ce6ccc5cd1b586425975026679ba3064e51..aa055ba82a1c5c59a0bc30b0e44d1baa0f5e70d9 100644 --- a/src/sip/sipvoiplink.cpp +++ b/src/sip/sipvoiplink.cpp @@ -53,6 +53,8 @@ #include "string_utils.h" #include "logger.h" +#include <opendht/thread_pool.h> + #include <pjsip/sip_endpoint.h> #include <pjsip/sip_uri.h> @@ -1199,10 +1201,10 @@ SIPVoIPLink::resolveSrvName(const std::string &name, pjsip_transport_type_e type try { if (s != PJ_SUCCESS || !r) { JAMI_WARN("Can't resolve \"%s\" using pjsip_endpt_resolve, trying getaddrinfo.", name.c_str()); - std::thread([=,cb=std::move(cb)](){ + dht::ThreadPool::io().run([=,cb=std::move(cb)](){ auto ips = ip_utils::getAddrList(name.c_str()); - runOnMainThread(std::bind(cb, ips.empty() ? std::vector<IpAddr>{} : std::move(ips))); - }).detach(); + runOnMainThread(std::bind(cb, std::move(ips))); + }); } else { std::vector<IpAddr> ips; ips.reserve(r->count);