From ec1df710d86cab7f86eb7895a38f2a6b5084098b Mon Sep 17 00:00:00 2001 From: Nipa Kumar Date: Fri, 1 Apr 2016 10:36:13 -0700 Subject: [PATCH] DiscoveryClient stops resusbcribing even after ttl period. On no response from discovery server and no error, subscribe timer is not restarted as the subscribe_cb_called_ flag was not reset. Setting the flag appropriately on every subscribe request, so subscribe timer can be restarted during the case above. Remove unnecessary curl timeout traces, use stats counters. Change-Id: Ief95c50ee91c47f8d12f6390d28c8cabca8c5ffd Closes-Bug:1563002 --- src/discovery/client/discovery_client.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/discovery/client/discovery_client.cc b/src/discovery/client/discovery_client.cc index 2931e89113e..ca2523175cb 100644 --- a/src/discovery/client/discovery_client.cc +++ b/src/discovery/client/discovery_client.cc @@ -489,6 +489,8 @@ void DiscoveryServiceClient::ReEvaluatePublish(std::string serviceName, resp->publish_msg_ = ss.str(); } + resp->pub_sent_++; + resp->publish_cb_called_ = false; /* Send publish unconditionally */ DISCOVERY_CLIENT_TRACE(DiscoveryClientMsg, resp->publish_hdr_, serviceName, resp->publish_msg_); @@ -564,6 +566,7 @@ void DiscoveryServiceClient::Publish(std::string serviceName) { DSPublishResponse *resp = loc->second; resp->pub_sent_++; + resp->publish_cb_called_ = false; SendHttpPostMessage(resp->publish_hdr_, serviceName, resp->publish_msg_); DISCOVERY_CLIENT_TRACE(DiscoveryClientMsg, resp->publish_hdr_, @@ -661,6 +664,7 @@ void DiscoveryServiceClient::Subscribe(std::string serviceName, uint8_t numbOfIn DSResponseHeader *resp = loc->second; resp->subscribe_timer_->Cancel(); resp->sub_sent_++; + resp->subscribe_cb_called_ = false; SendHttpPostMessage("subscribe", serviceName, resp->subscribe_msg_); } } @@ -888,6 +892,7 @@ void DiscoveryServiceClient::SendHeartBeat(std::string serviceName, std::string msg) { DSPublishResponse *resp = GetPublishResponse(serviceName); resp->pub_hb_sent_++; + resp->heartbeat_cb_called_ = false; SendHttpPostMessage("heartbeat", serviceName, msg); }