Rename Mdns interface into DnsServiceDiscoveryProvider BUG: 24267885 Change-Id: I9e8d7da7c988ca5defa0a5f0d77a3e2b66895f7d Reviewed-on: https://weave-review.googlesource.com/1156 Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/libweave/examples/ubuntu/avahi_client.cc b/libweave/examples/ubuntu/avahi_client.cc index 31e5741..58d11d0 100644 --- a/libweave/examples/ubuntu/avahi_client.cc +++ b/libweave/examples/ubuntu/avahi_client.cc
@@ -23,7 +23,7 @@ } // namespace -MdnsImpl::MdnsImpl() { +AvahiClient::AvahiClient() { CHECK_EQ(0, std::system("service avahi-daemon status | grep running || " "service avahi-daemon start")); thread_pool_.reset(avahi_threaded_poll_new()); @@ -41,14 +41,14 @@ << ". Check avahi-daemon configuration"; } -MdnsImpl::~MdnsImpl() { +AvahiClient::~AvahiClient() { if (thread_pool_) avahi_threaded_poll_stop(thread_pool_.get()); } -void MdnsImpl::PublishService(const std::string& service_type, - uint16_t port, - const std::vector<std::string>& txt) { +void AvahiClient::PublishService(const std::string& service_type, + uint16_t port, + const std::vector<std::string>& txt) { LOG(INFO) << "Publishing service"; CHECK(group_); @@ -86,12 +86,12 @@ } } -void MdnsImpl::StopPublishing(const std::string& service_name) { +void AvahiClient::StopPublishing(const std::string& service_name) { CHECK(group_); avahi_entry_group_reset(group_.get()); } -std::string MdnsImpl::GetId() const { +std::string AvahiClient::GetId() const { return "WEAVE" + std::to_string(gethostid()); }
diff --git a/libweave/examples/ubuntu/avahi_client.h b/libweave/examples/ubuntu/avahi_client.h index 90abd76..d3121a9 100644 --- a/libweave/examples/ubuntu/avahi_client.h +++ b/libweave/examples/ubuntu/avahi_client.h
@@ -12,17 +12,17 @@ #include <avahi-client/publish.h> #include <avahi-common/thread-watch.h> -#include <weave/mdns.h> +#include <weave/dns_service_discovery_provider.h> namespace weave { namespace examples { -// Example of weave::Mdns implemented with avahi. -class MdnsImpl : public Mdns { +// Example of weave::DnsServiceDiscoveryProvider implemented with avahi. +class AvahiClient : public DnsServiceDiscoveryProvider { public: - MdnsImpl(); + AvahiClient(); - ~MdnsImpl() override; + ~AvahiClient() override; void PublishService(const std::string& service_type, uint16_t port, const std::vector<std::string>& txt) override; @@ -35,7 +35,7 @@ std::unique_ptr<AvahiThreadedPoll, decltype(&avahi_threaded_poll_free)> thread_pool_{nullptr, &avahi_threaded_poll_free}; - std::unique_ptr<AvahiClient, decltype(&avahi_client_free)> client_{ + std::unique_ptr<::AvahiClient, decltype(&avahi_client_free)> client_{ nullptr, &avahi_client_free}; std::unique_ptr<AvahiEntryGroup, decltype(&avahi_entry_group_free)> group_{
diff --git a/libweave/examples/ubuntu/main.cc b/libweave/examples/ubuntu/main.cc index ff936d7..4e7f07c 100644 --- a/libweave/examples/ubuntu/main.cc +++ b/libweave/examples/ubuntu/main.cc
@@ -88,7 +88,7 @@ weave::examples::EventTaskRunner task_runner; weave::examples::CurlHttpClient http_client{&task_runner}; weave::examples::NetworkImpl network{&task_runner, force_bootstrapping}; - weave::examples::MdnsImpl mdns; + weave::examples::AvahiClient dns_sd; weave::examples::HttpServerImpl http_server{&task_runner}; weave::examples::BluetoothImpl bluetooth; @@ -99,7 +99,7 @@ opts.disable_security = disable_security; opts.enable_ping = true; device->Start( - opts, &config_store, &task_runner, &http_client, &network, &mdns, + opts, &config_store, &task_runner, &http_client, &network, &dns_sd, &http_server, weave::examples::NetworkImpl::HasWifiCapability() ? &network : nullptr, &bluetooth);
diff --git a/libweave/include/weave/device.h b/libweave/include/weave/device.h index bf49609..c6b70ea 100644 --- a/libweave/include/weave/device.h +++ b/libweave/include/weave/device.h
@@ -13,10 +13,10 @@ #include <weave/cloud.h> #include <weave/commands.h> #include <weave/config_store.h> +#include <weave/dns_service_discovery_provider.h> #include <weave/export.h> #include <weave/http_client.h> #include <weave/http_server.h> -#include <weave/mdns.h> #include <weave/network_provider.h> #include <weave/privet.h> #include <weave/state.h> @@ -42,7 +42,7 @@ TaskRunner* task_runner, HttpClient* http_client, NetworkProvider* network, - Mdns* mdns, + DnsServiceDiscoveryProvider* dns_sd, HttpServer* http_server, WifiProvider* wifi, Bluetooth* bluetooth) = 0;
diff --git a/libweave/include/weave/mdns.h b/libweave/include/weave/dns_service_discovery_provider.h similarity index 67% rename from libweave/include/weave/mdns.h rename to libweave/include/weave/dns_service_discovery_provider.h index b149277..bdba69d 100644 --- a/libweave/include/weave/mdns.h +++ b/libweave/include/weave/dns_service_discovery_provider.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef LIBWEAVE_INCLUDE_WEAVE_MDNS_H_ -#define LIBWEAVE_INCLUDE_WEAVE_MDNS_H_ +#ifndef LIBWEAVE_INCLUDE_WEAVE_DNS_SERVICE_DISCOVERY_PROVIDER_H_ +#define LIBWEAVE_INCLUDE_WEAVE_DNS_SERVICE_DISCOVERY_PROVIDER_H_ #include <string> #include <vector> @@ -12,9 +12,9 @@ namespace weave { -class Mdns { +class DnsServiceDiscoveryProvider { public: - // Publishes new service on mDns or updates existing one. + // Publishes new service using DNS-SD or updates existing one. virtual void PublishService(const std::string& service_type, uint16_t port, const std::vector<std::string>& txt) = 0; @@ -27,9 +27,9 @@ virtual std::string GetId() const = 0; protected: - virtual ~Mdns() = default; + virtual ~DnsServiceDiscoveryProvider() = default; }; } // namespace weave -#endif // LIBWEAVE_INCLUDE_WEAVE_MDNS_H_ +#endif // LIBWEAVE_INCLUDE_WEAVE_DNS_SERVICE_DISCOVERY_PROVIDER_H_
diff --git a/libweave/include/weave/test/mock_mdns.h b/libweave/include/weave/test/mock_dns_service_discovery_provider.h similarity index 62% rename from libweave/include/weave/test/mock_mdns.h rename to libweave/include/weave/test/mock_dns_service_discovery_provider.h index 40beeac..6d187f8 100644 --- a/libweave/include/weave/test/mock_mdns.h +++ b/libweave/include/weave/test/mock_dns_service_discovery_provider.h
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_MDNS_H_ -#define LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_MDNS_H_ +#ifndef LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_DNS_SERVICE_DISCOVERY_PROVIDER_H_ +#define LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_DNS_SERVICE_DISCOVERY_PROVIDER_H_ -#include <weave/mdns.h> +#include <weave/dns_service_discovery_provider.h> #include <string> #include <vector> @@ -15,7 +15,7 @@ namespace weave { namespace test { -class MockMdns : public Mdns { +class MockDnsServiceDiscovery : public DnsServiceDiscoveryProvider { public: MOCK_METHOD3(PublishService, void(const std::string&, @@ -28,4 +28,4 @@ } // namespace test } // namespace weave -#endif // LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_MDNS_H_ +#endif // LIBWEAVE_INCLUDE_WEAVE_TEST_MOCK_DNS_SERVICE_DISCOVERY_PROVIDER_H_
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc index 50bfcbe..4e8479e 100644 --- a/libweave/src/device_manager.cc +++ b/libweave/src/device_manager.cc
@@ -34,7 +34,7 @@ TaskRunner* task_runner, HttpClient* http_client, NetworkProvider* network, - Mdns* mdns, + DnsServiceDiscoveryProvider* dns_sd, HttpServer* http_server, WifiProvider* wifi, Bluetooth* bluetooth) { @@ -58,11 +58,11 @@ device_info_->Start(); if (!options.disable_privet) { - StartPrivet(options, task_runner, network, mdns, http_server, wifi, + StartPrivet(options, task_runner, network, dns_sd, http_server, wifi, bluetooth); } else { CHECK(!http_server); - CHECK(!mdns); + CHECK(!dns_sd); } } @@ -89,12 +89,12 @@ void DeviceManager::StartPrivet(const Options& options, TaskRunner* task_runner, NetworkProvider* network, - Mdns* mdns, + DnsServiceDiscoveryProvider* dns_sd, HttpServer* http_server, WifiProvider* wifi, Bluetooth* bluetooth) { privet_.reset(new privet::Manager{}); - privet_->Start(options, task_runner, network, mdns, http_server, wifi, + privet_->Start(options, task_runner, network, dns_sd, http_server, wifi, device_info_.get(), command_manager_.get(), state_manager_.get());
diff --git a/libweave/src/device_manager.h b/libweave/src/device_manager.h index 00f2b5c..3441dde 100644 --- a/libweave/src/device_manager.h +++ b/libweave/src/device_manager.h
@@ -31,7 +31,7 @@ TaskRunner* task_runner, HttpClient* http_client, NetworkProvider* network, - Mdns* mdns, + DnsServiceDiscoveryProvider* dns_sd, HttpServer* http_server, WifiProvider* wifi, Bluetooth* bluetooth) override; @@ -47,7 +47,7 @@ void StartPrivet(const Options& options, TaskRunner* task_runner, NetworkProvider* network, - Mdns* mdns, + DnsServiceDiscoveryProvider* dns_sd, HttpServer* http_server, WifiProvider* wifi, Bluetooth* bluetooth);
diff --git a/libweave/src/privet/cloud_delegate.h b/libweave/src/privet/cloud_delegate.h index eb87e67..f96da19 100644 --- a/libweave/src/privet/cloud_delegate.h +++ b/libweave/src/privet/cloud_delegate.h
@@ -74,7 +74,7 @@ virtual std::string GetModelName() const = 0; // Returns the list of services supported by device. - // E.g. printer, scanner etc. Should match services published on mDNS. + // E.g. printer, scanner etc. Should match services published on DNS-SD. virtual std::set<std::string> GetServices() const = 0; // Returns max scope available for anonymous user.
diff --git a/libweave/src/privet/privet_manager.cc b/libweave/src/privet/privet_manager.cc index cbf3bd3..cf25773 100644 --- a/libweave/src/privet/privet_manager.cc +++ b/libweave/src/privet/privet_manager.cc
@@ -36,7 +36,7 @@ void Manager::Start(const Device::Options& options, TaskRunner* task_runner, NetworkProvider* network, - Mdns* mdns, + DnsServiceDiscoveryProvider* dns_sd, HttpServer* http_server, WifiProvider* wifi, DeviceRegistrationInfo* device, @@ -64,7 +64,7 @@ } publisher_.reset(new Publisher(device_.get(), cloud_.get(), - wifi_bootstrap_manager_.get(), mdns)); + wifi_bootstrap_manager_.get(), dns_sd)); privet_handler_.reset( new PrivetHandler(cloud_.get(), device_.get(), security_.get(),
diff --git a/libweave/src/privet/privet_manager.h b/libweave/src/privet/privet_manager.h index 107a280..7fc90a2 100644 --- a/libweave/src/privet/privet_manager.h +++ b/libweave/src/privet/privet_manager.h
@@ -29,7 +29,7 @@ class CommandManager; class DeviceRegistrationInfo; -class Mdns; +class DnsServiceDiscoveryProvider; class NetworkProvider; class StateManager; @@ -50,7 +50,7 @@ void Start(const weave::Device::Options& options, TaskRunner* task_runner, NetworkProvider* network, - Mdns* mdns, + DnsServiceDiscoveryProvider* dns_sd, HttpServer* http_server, WifiProvider* wifi, DeviceRegistrationInfo* device,
diff --git a/libweave/src/privet/publisher.cc b/libweave/src/privet/publisher.cc index a2595f5..6a5b8bb 100644 --- a/libweave/src/privet/publisher.cc +++ b/libweave/src/privet/publisher.cc
@@ -6,8 +6,8 @@ #include <map> +#include <weave/dns_service_discovery_provider.h> #include <weave/error.h> -#include <weave/mdns.h> #include "libweave/src/privet/cloud_delegate.h" #include "libweave/src/privet/device_delegate.h" @@ -20,7 +20,7 @@ namespace { -// The service type we'll expose via mdns. +// The service type we'll expose via DNS-SD. const char kPrivetServiceType[] = "_privet._tcp"; } // namespace @@ -28,11 +28,11 @@ Publisher::Publisher(const DeviceDelegate* device, const CloudDelegate* cloud, const WifiDelegate* wifi, - Mdns* mdns) - : mdns_{mdns}, device_{device}, cloud_{cloud}, wifi_{wifi} { + DnsServiceDiscoveryProvider* dns_sd) + : dns_sd_{dns_sd}, device_{device}, cloud_{cloud}, wifi_{wifi} { CHECK(device_); CHECK(cloud_); - CHECK(mdns_); + CHECK(dns_sd_); } Publisher::~Publisher() { @@ -40,7 +40,7 @@ } std::string Publisher::GetId() const { - return mdns_->GetId(); + return dns_sd_->GetId(); } void Publisher::Update() { @@ -79,7 +79,7 @@ txt_record.emplace_back("note=" + cloud_->GetDescription()); is_publishing_ = true; - mdns_->PublishService(kPrivetServiceType, port, txt_record); + dns_sd_->PublishService(kPrivetServiceType, port, txt_record); } void Publisher::RemoveService() { @@ -87,7 +87,7 @@ return; is_publishing_ = false; VLOG(1) << "Stopping service publishing."; - mdns_->StopPublishing(kPrivetServiceType); + dns_sd_->StopPublishing(kPrivetServiceType); } } // namespace privet
diff --git a/libweave/src/privet/publisher.h b/libweave/src/privet/publisher.h index 71d38a8..b73ea2e 100644 --- a/libweave/src/privet/publisher.h +++ b/libweave/src/privet/publisher.h
@@ -14,7 +14,7 @@ namespace weave { -class Mdns; +class DnsServiceDiscoveryProvider; namespace privet { @@ -22,13 +22,13 @@ class DeviceDelegate; class WifiDelegate; -// Publishes privet service on mDns. +// Publishes privet service on DNS-SD. class Publisher : public IdentityDelegate { public: Publisher(const DeviceDelegate* device, const CloudDelegate* cloud, const WifiDelegate* wifi, - Mdns* mdns); + DnsServiceDiscoveryProvider* dns_sd); ~Publisher() override; // IdentityDelegate implementation. @@ -42,7 +42,7 @@ void RemoveService(); bool is_publishing_{false}; - Mdns* mdns_{nullptr}; + DnsServiceDiscoveryProvider* dns_sd_{nullptr}; const DeviceDelegate* device_{nullptr}; const CloudDelegate* cloud_{nullptr};
diff --git a/libweave/src/weave_unittest.cc b/libweave/src/weave_unittest.cc index 9bd7559..f5d7818 100644 --- a/libweave/src/weave_unittest.cc +++ b/libweave/src/weave_unittest.cc
@@ -8,9 +8,9 @@ #include <gtest/gtest.h> #include <weave/test/mock_bluetooth.h> #include <weave/test/mock_config_store.h> +#include <weave/test/mock_dns_service_discovery_provider.h> #include <weave/test/mock_http_client.h> #include <weave/test/mock_http_server.h> -#include <weave/test/mock_mdns.h> #include <weave/test/mock_network_provider.h> #include <weave/test/mock_task_runner.h> #include <weave/test/mock_wifi_provider.h> @@ -231,18 +231,13 @@ .WillRepeatedly(Return(NetworkState::kOffline)); } - void IgnoreMdns() { - EXPECT_CALL(mdns_, GetId()).WillRepeatedly(Return("TEST_ID")); - EXPECT_CALL(mdns_, PublishService(_, _, _)).WillRepeatedly(Return()); - EXPECT_CALL(mdns_, StopPublishing("_privet._tcp")).WillOnce(Return()); + void InitDnsSd() { + EXPECT_CALL(dns_sd_, GetId()).WillRepeatedly(Return("TEST_ID")); + EXPECT_CALL(dns_sd_, PublishService(_, _, _)).WillRepeatedly(Return()); + EXPECT_CALL(dns_sd_, StopPublishing("_privet._tcp")).WillOnce(Return()); } - void InitMdns() { - EXPECT_CALL(mdns_, GetId()).WillRepeatedly(Return("TEST_ID")); - EXPECT_CALL(mdns_, StopPublishing("_privet._tcp")).WillOnce(Return()); - } - - void InitMdnsPublishing(bool registered, const std::string& flags) { + void InitDnsSdPublishing(bool registered, const std::string& flags) { std::vector<std::string> txt{{"id=TEST_ID"}, {"flags=" + flags}, {"mmid=ABCDE"}, {"services=_base"}, {"txtvers=3"}, {"ty=DEVICE_NAME"}}; @@ -252,14 +247,14 @@ // During registration device may announce itself twice: // 1. with GCD ID but not connected (DB) // 2. with GCD ID and connected (BB) - EXPECT_CALL(mdns_, PublishService("_privet._tcp", 11, MatchTxt(txt))) + EXPECT_CALL(dns_sd_, PublishService("_privet._tcp", 11, MatchTxt(txt))) .Times(AtMost(1)) .WillOnce(Return()); txt[1] = "flags=BB"; } - EXPECT_CALL(mdns_, PublishService("_privet._tcp", 11, MatchTxt(txt))) + EXPECT_CALL(dns_sd_, PublishService("_privet._tcp", 11, MatchTxt(txt))) .WillOnce(Return()); } @@ -286,7 +281,7 @@ EXPECT_CALL(wifi_, StartAccessPoint(MatchesRegex("DEVICE_NAME.*prv"))) .WillOnce(Return()); InitHttpServer(); - InitMdns(); + InitDnsSd(); } void StartDevice() { @@ -294,7 +289,7 @@ options.xmpp_enabled = false; device_->Start(options, &config_store_, &task_runner_, &http_client_, - &network_, &mdns_, &http_server_, &wifi_, &bluetooth_); + &network_, &dns_sd_, &http_server_, &wifi_, &bluetooth_); cloud_ = device_->GetCloud(); ASSERT_TRUE(cloud_); @@ -326,7 +321,7 @@ StrictMock<test::MockTaskRunner> task_runner_; StrictMock<test::MockHttpClient> http_client_; StrictMock<test::MockNetworkProvider> network_; - StrictMock<test::MockMdns> mdns_; + StrictMock<test::MockDnsServiceDiscovery> dns_sd_; StrictMock<test::MockHttpServer> http_server_; StrictMock<test::MockWifiProvider> wifi_; StrictMock<test::MockBluetooth> bluetooth_; @@ -357,12 +352,12 @@ InitConfigStore(); InitNetwork(); InitHttpServer(); - InitMdns(); - InitMdnsPublishing(false, "CB"); + InitDnsSd(); + InitDnsSdPublishing(false, "CB"); weave::Device::Options options; device_->Start(options, &config_store_, &task_runner_, &http_client_, - &network_, &mdns_, &http_server_, nullptr, &bluetooth_); + &network_, &dns_sd_, &http_server_, nullptr, &bluetooth_); for (const auto& cb : http_server_changed_cb_) cb.Run(http_server_); @@ -376,7 +371,7 @@ WeaveTest::SetUp(); InitDefaultExpectations(); - InitMdnsPublishing(false, "DB"); + InitDnsSdPublishing(false, "DB"); } }; @@ -407,7 +402,7 @@ ExpectRequest("POST", "https://accounts.google.com/o/oauth2/token", kAuthTokenResponse); - InitMdnsPublishing(true, "DB"); + InitDnsSdPublishing(true, "DB"); EXPECT_EQ("DEVICE_ID", cloud_->RegisterDevice("TEST_ID", nullptr)); } @@ -420,7 +415,7 @@ InitConfigStore(); InitHttpServer(); InitNetwork(); - IgnoreMdns(); + InitDnsSd(); EXPECT_CALL(network_, GetConnectionState()) .WillRepeatedly(Return(NetworkState::kConnected));