diff --git a/src/manager.cpp b/src/manager.cpp index 181a668b41be4280947fd3886e8ceb47d0721640..9344bba7f97937f455aa8e799990c85426d1dbad 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -707,7 +707,7 @@ Manager::init(const std::string &config_file) #endif #define PJSIP_TRY(ret) do { \ - if (ret != PJ_SUCCESS) \ + if ((ret) != PJ_SUCCESS) \ throw std::runtime_error(#ret " failed"); \ } while (0) diff --git a/src/manager.h b/src/manager.h index f5b3a430a5e278b6de99dbc720a194bd531c9e23..f50bf67c21ee353542a897eab5595c5d3c44d8c4 100644 --- a/src/manager.h +++ b/src/manager.h @@ -899,7 +899,7 @@ private: // Helper to install a callback to be called once by the main event loop template<typename Callback> static void runOnMainThread(Callback&& cb) { - Manager::instance().scheduler().run([cb = std::move(cb)]() mutable { + Manager::instance().scheduler().run([cb = std::forward<Callback>(cb)]() mutable { cb(); }); } diff --git a/src/ringdht/namedirectory.cpp b/src/ringdht/namedirectory.cpp index 1d19143ab94e73e4c53257217419001b0f52c8cc..c4dd81bec53ee9de8e76418fcdaf470886cabc53 100644 --- a/src/ringdht/namedirectory.cpp +++ b/src/ringdht/namedirectory.cpp @@ -193,12 +193,12 @@ void NameDirectory::lookupName(const std::string& n, LookupCallback cb) } restbed::Uri uri(HTTPS_PROTO + serverHost_ + QUERY_NAME + name); + RING_DBG("Name lookup for %s: %s", name.c_str(), uri.to_string().c_str()); + auto request = std::make_shared<restbed::Request>(std::move(uri)); request->set_header("Accept", "*/*"); request->set_header("Host", serverHost_); - RING_DBG("Name lookup for %s: %s", name.c_str(), uri.to_string().c_str()); - auto ret = restbed::Http::async(request, [this,cb,name](const std::shared_ptr<restbed::Request>&, const std::shared_ptr<restbed::Response>& reply) { auto code = reply->get_status_code(); diff --git a/src/threadloop.h b/src/threadloop.h index d687fb58a6e4bf4772dbcebb28a2a4532c076a0b..4eaa8ca9e42b8527fafb7cce6ff57b76b58bab05 100644 --- a/src/threadloop.h +++ b/src/threadloop.h @@ -117,7 +117,7 @@ public: throw std::runtime_error("Can not call wait outside thread context"); std::unique_lock<std::mutex> lk(mutex_); - cv_.wait(lk, [this, p = std::move(pred)]{ return isStopping() || p(); }); + cv_.wait(lk, [this, p = std::forward<Pred>(pred)]{ return isStopping() || p(); }); } private: