diff --git a/src/dht_proxy_client.cpp b/src/dht_proxy_client.cpp index ebf67c06..76fcc47c 100644 --- a/src/dht_proxy_client.cpp +++ b/src/dht_proxy_client.cpp @@ -1219,11 +1219,13 @@ DhtProxyClient::restartListeners(const asio::error_code& ec) // now, so the server learns the session id of this run: healthy // listeners are skipped by the loop below, and would otherwise // never be subscribed for push at all. + // Also set after a push of a stale session was dropped: ask for the + // stored values too, or the value that push announced is lost. if (logger_) logger_->debug("[proxy:client] [listeners] sending deferred push subscriptions"); for (auto& search : searches_) for (auto& listener : search.second.listeners) - resubscribe(search.first, listener.first, listener.second); + resubscribe(search.first, listener.first, listener.second, true); return; } if (logger_) @@ -1288,7 +1290,8 @@ DhtProxyClient::pushNotificationReceived([[maybe_unused]] const std::map