From 63f391e878bf4e3edb97f54eacae4d04e2a53757 Mon Sep 17 00:00:00 2001 From: Nipa Kumar Date: Tue, 6 Oct 2015 14:26:42 -0700 Subject: [PATCH] Send subscriber discovery client ip address Change-Id: Ic80f7197390f6d99e3371b7b86bd99d2e993b6fb Closes-Bug:1484861 --- src/discovery/client/discovery_client.cc | 20 ++++++++++---------- src/discovery/client/discovery_client.h | 1 + 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/discovery/client/discovery_client.cc b/src/discovery/client/discovery_client.cc index 4c3fd9afc27..2931e89113e 100644 --- a/src/discovery/client/discovery_client.cc +++ b/src/discovery/client/discovery_client.cc @@ -169,11 +169,19 @@ DiscoveryServiceClient::DiscoveryServiceClient(EventManager *evm, this, _1)), shutdown_(false), subscriber_name_(client_name), - heartbeat_interval_(DiscoveryServiceClient::kHeartBeatInterval) { + heartbeat_interval_(DiscoveryServiceClient::kHeartBeatInterval), + local_addr_("127.0.0.1") { } void DiscoveryServiceClient::Init() { http_client_->Init(); + + boost::system::error_code ec; + boost::asio::ip::tcp::socket socket(*evm_->io_service()); + socket.connect(ds_endpoint_, ec); + if (ec == 0) { + local_addr_ = socket.local_endpoint().address().to_string(); + } } void DiscoveryServiceClient::Shutdown() { @@ -619,16 +627,8 @@ void DiscoveryServiceClient::Subscribe(std::string serviceName, subscriber_name_; pugi->AddChildNode("client", client_id); pugi->ReadNode(serviceName); //Reset parent + pugi->AddChildNode("remote-addr", local_addr_); - //Retrieve ip address - ip::udp::resolver resolver(*evm_->io_service()); - ip::udp::resolver::query query(ip::udp::v4(), ip::host_name(error), ""); - ip::udp::resolver::iterator endpoint_iter = resolver.resolve(query, error); - if (!error) { - ip::udp::endpoint ep = *endpoint_iter++; - pugi->AddChildNode("remote-addr", ep.address().to_string()); - } - stringstream ss; impl->PrintDoc(ss); diff --git a/src/discovery/client/discovery_client.h b/src/discovery/client/discovery_client.h index a96c2faa49d..01c3f4a778e 100644 --- a/src/discovery/client/discovery_client.h +++ b/src/discovery/client/discovery_client.h @@ -214,6 +214,7 @@ class DiscoveryServiceClient { bool shutdown_; std::string subscriber_name_; int heartbeat_interval_; + std::string local_addr_; }; #endif // __DISCOVERY_SERVICE_CLIENT_H__