diff --git a/include/opendht/dht_proxy_server.h b/include/opendht/dht_proxy_server.h index 627335c98fc7fcddd063f42a383e6766bc5ef5da..8ffd9ac8a67e76d988985fabc7ab30d70dc892a2 100644 --- a/include/opendht/dht_proxy_server.h +++ b/include/opendht/dht_proxy_server.h @@ -360,7 +360,7 @@ private: mutable std::atomic<size_t> requestNum_ {0}; mutable std::atomic<time_point> lastStatsReset_ {time_point::min()}; - const std::string pushServer_; + std::string pushServer_; #ifdef OPENDHT_PUSH_NOTIFICATIONS struct Listener { diff --git a/src/dht_proxy_server.cpp b/src/dht_proxy_server.cpp index 22177e8875512806cf7a1c2ddc3c1117d8e1097b..00ed8796b10387d426c12952e4e03458b51d2e75 100644 --- a/src/dht_proxy_server.cpp +++ b/src/dht_proxy_server.cpp @@ -222,6 +222,16 @@ DhtProxyServer::DhtProxyServer( jsonBuilder_["commentStyle"] = "None"; jsonBuilder_["indentation"] = ""; + if (!pushServer.empty()){ + // no host delim, assume port only + if (pushServer.find(":") == std::string::npos) + pushServer_ = "localhost:" + pushServer_; + // define http request destination for push notifications + pushHostPort_ = splitPort(pushServer_); + if (logger_) + logger_->d("Using push server for notifications: %s:%s", pushHostPort_.first.c_str(), + pushHostPort_.second.c_str()); + } if (identity.first and identity.second) { asio::error_code ec; // define tls context @@ -258,8 +268,6 @@ DhtProxyServer::DhtProxyServer( restinio::own_io_context(), std::forward<restinio::run_on_this_thread_settings_t<RestRouterTraitsTls>>(std::move(settings)) ); - // define http request destination - pushHostPort_ = splitPort(pushServer_); // run http server serverThread_ = std::thread([this]{ httpsServer_->open_async([]{/*ok*/}, [](std::exception_ptr ex){ @@ -276,8 +284,6 @@ DhtProxyServer::DhtProxyServer( restinio::own_io_context(), std::forward<restinio::run_on_this_thread_settings_t<RestRouterTraits>>(std::move(settings)) ); - // define http request destination - pushHostPort_ = splitPort(pushServer_); // run http server serverThread_ = std::thread([this](){ httpServer_->open_async([]{/*ok*/}, [](std::exception_ptr ex){