diff options
-rw-r--r-- | avahi_client.cc | 6 | ||||
-rw-r--r-- | avahi_client.h | 4 | ||||
-rw-r--r-- | avahi_client_unittest.cc | 2 | ||||
-rw-r--r-- | avahi_service_discoverer.cc | 15 | ||||
-rw-r--r-- | avahi_service_publisher.cc | 24 | ||||
-rw-r--r-- | avahi_service_publisher.h | 8 | ||||
-rw-r--r-- | avahi_service_publisher_unittest.cc | 2 | ||||
-rw-r--r-- | dbus_constants.cc | 4 | ||||
-rw-r--r-- | dbus_constants.h | 4 | ||||
-rw-r--r-- | discovered_peer.cc | 12 | ||||
-rw-r--r-- | discovered_peer.h | 12 | ||||
-rw-r--r-- | discovered_peer_unittest.cc | 41 | ||||
-rw-r--r-- | manager.cc | 23 | ||||
-rw-r--r-- | manager.h | 6 | ||||
-rw-r--r-- | mock_avahi_client.h | 6 | ||||
-rw-r--r-- | mock_peer_manager.h | 4 | ||||
-rw-r--r-- | mock_published_peer.h | 10 | ||||
-rw-r--r-- | peer.cc | 78 | ||||
-rw-r--r-- | peer.h | 15 | ||||
-rw-r--r-- | peer_manager_impl.cc | 16 | ||||
-rw-r--r-- | peer_manager_impl.h | 2 | ||||
-rw-r--r-- | peer_manager_impl_unittest.cc | 18 | ||||
-rw-r--r-- | peer_manager_interface.h | 2 | ||||
-rw-r--r-- | peer_unittest.cc | 58 | ||||
-rw-r--r-- | service_publisher_interface.h | 14 |
25 files changed, 38 insertions, 348 deletions
diff --git a/avahi_client.cc b/avahi_client.cc index 4dca47e..23cadff 100644 --- a/avahi_client.cc +++ b/avahi_client.cc @@ -187,9 +187,7 @@ void AvahiClient::HandleServerStateChange(int32_t state) { } base::WeakPtr<ServicePublisherInterface> AvahiClient::GetPublisher( - const std::string& uuid, - const std::string& friendly_name, - const std::string& note) { + const std::string& uuid) { base::WeakPtr<ServicePublisherInterface> result; if (!avahi_is_up_) { return result; } if (!publisher_) { @@ -200,7 +198,7 @@ base::WeakPtr<ServicePublisherInterface> AvahiClient::GetPublisher( return result; } publisher_.reset(new AvahiServicePublisher( - host_name, uuid, friendly_name, note, bus_, server_)); + host_name, uuid, bus_, server_)); } result = publisher_->GetWeakPtr(); return result; diff --git a/avahi_client.h b/avahi_client.h index a09bdae..edf781f 100644 --- a/avahi_client.h +++ b/avahi_client.h @@ -52,9 +52,7 @@ class AvahiClient { // OnAvahiRestartCallbacks that we have. At that point, grab a new publisher // and repeat. virtual base::WeakPtr<ServicePublisherInterface> GetPublisher( - const std::string& uuid, - const std::string& friendly_name, - const std::string& note); + const std::string& uuid); virtual void StartMonitoring(); virtual void StopMonitoring(); diff --git a/avahi_client_unittest.cc b/avahi_client_unittest.cc index 35fbd39..e190a85 100644 --- a/avahi_client_unittest.cc +++ b/avahi_client_unittest.cc @@ -222,7 +222,7 @@ TEST_F(AvahiClientTest, CanGetPublisherWhenAvahiIsUp) { MockCallMethodAndBlockWithErrorDetails(IsDBusMethodCallTo( kServerInterface, kServerMethodGetHostName), _, _)) .WillOnce(Invoke(&ReturnsHostName)); - EXPECT_NE(nullptr, client_->GetPublisher("uuid", "name", "note")); + EXPECT_NE(nullptr, client_->GetPublisher("uuid")); } TEST_F(AvahiClientTest, ShouldStartMonitoringWhenUp) { diff --git a/avahi_service_discoverer.cc b/avahi_service_discoverer.cc index 2434712..9183cfa 100644 --- a/avahi_service_discoverer.cc +++ b/avahi_service_discoverer.cc @@ -338,28 +338,18 @@ void AvahiServiceDiscoverer::HandleFound(dbus::Signal* signal) { base::Time last_seen = base::Time::Now(); if (type == constants::mdns::kSerbusServiceType) { VLOG(1) << "Found serbus TXT record update."; - if (info.size() != 5) { + if (info.size() != 3) { LOG(ERROR) << "Peer is advertising serbus record with incorrect number " "of fields: " << info.size(); return; } auto it_peer_id = info.find(constants::mdns::kSerbusPeerId); - auto it_name = info.find(constants::mdns::kSerbusName); - auto it_note = info.find(constants::mdns::kSerbusNote); auto it_version = info.find(constants::mdns::kSerbusVersion); auto it_services = info.find(constants::mdns::kSerbusServiceList); if (it_peer_id == info.end()) { LOG(ERROR) << "Ignoring Peer with missing peer id."; return; } - if (it_name == info.end()) { - LOG(ERROR) << "Ignoring Peer with missing name."; - return; - } - if (it_note == info.end()) { - LOG(ERROR) << "Ignoring Peer with missing note."; - return; - } if (it_version == info.end()) { LOG(ERROR) << "Ignoring Peer with missing version string."; return; @@ -389,8 +379,7 @@ void AvahiServiceDiscoverer::HandleFound(dbus::Signal* signal) { // TODO(wiley) We don't actually do anything with the version const string& peer_id = it_peer_id->second; peer_manager_->OnPeerDiscovered( - peer_id, it_name->second, it_note->second, - last_seen, technologies::kMDNS); + peer_id, last_seen, technologies::kMDNS); const resolv_key_t serbus_key{interface, name, domain}; auto pair = serbus_record_to_peer_id_.emplace(serbus_key, peer_id); if (!pair.second) { diff --git a/avahi_service_publisher.cc b/avahi_service_publisher.cc index 7c68736..a985466 100644 --- a/avahi_service_publisher.cc +++ b/avahi_service_publisher.cc @@ -40,13 +40,9 @@ const char kInvalidServiceId[] = "avahi.invalid_service_id"; AvahiServicePublisher::AvahiServicePublisher( const std::string& lan_name, const std::string& uuid, - const std::string& friendly_name, - const std::string& note, const scoped_refptr<dbus::Bus>& bus, dbus::ObjectProxy* avahi_proxy) : lan_unique_hostname_{lan_name}, uuid_{uuid}, - friendly_name_{friendly_name}, - note_{note}, bus_{bus}, avahi_proxy_{avahi_proxy} { } @@ -135,24 +131,6 @@ bool AvahiServicePublisher::OnServiceRemoved(ErrorPtr* error, return UpdateRootService(error) && remove_successful; } -bool AvahiServicePublisher::OnFriendlyNameChanged(ErrorPtr* error, - const std::string& name) { - if (name == friendly_name_) { - return true; - } - friendly_name_ = name; - return UpdateRootService(error); -} - -bool AvahiServicePublisher::OnNoteChanged(ErrorPtr* error, - const std::string& note) { - if (note == note_) { - return true; - } - note_ = note; - return UpdateRootService(error); -} - AvahiServicePublisher::TxtRecord AvahiServicePublisher::GetTxtRecord( const Service::ServiceInfo& info) { TxtRecord result; @@ -233,8 +211,6 @@ bool AvahiServicePublisher::UpdateRootService(ErrorPtr* error) { Service::ServiceInfo service_info{ {constants::mdns::kSerbusVersion, "1.0"}, {constants::mdns::kSerbusPeerId, uuid_}, - {constants::mdns::kSerbusNote, note_}, - {constants::mdns::kSerbusName, friendly_name_}, {constants::mdns::kSerbusServiceList, Join(kSerbusServiceDelimiter, services)}, }; diff --git a/avahi_service_publisher.h b/avahi_service_publisher.h index ce06668..2e44fea 100644 --- a/avahi_service_publisher.h +++ b/avahi_service_publisher.h @@ -36,8 +36,6 @@ class AvahiServicePublisher : public ServicePublisherInterface { public: AvahiServicePublisher(const std::string& lan_name, const std::string& uuid, - const std::string& friendly_name, - const std::string& note, const scoped_refptr<dbus::Bus>& bus, dbus::ObjectProxy* avahi_proxy); ~AvahiServicePublisher(); @@ -48,10 +46,6 @@ class AvahiServicePublisher : public ServicePublisherInterface { const Service& service) override; bool OnServiceRemoved(chromeos::ErrorPtr* error, const std::string& service_id) override; - bool OnFriendlyNameChanged(chromeos::ErrorPtr* error, - const std::string& name) override; - bool OnNoteChanged(chromeos::ErrorPtr* error, - const std::string& note) override; private: using TxtRecord = std::vector<std::vector<uint8_t>>; @@ -84,8 +78,6 @@ class AvahiServicePublisher : public ServicePublisherInterface { const std::string lan_unique_hostname_; const std::string uuid_; - std::string friendly_name_; - std::string note_; scoped_refptr<dbus::Bus> bus_; dbus::ObjectProxy* avahi_proxy_; std::map<std::string, dbus::ObjectProxy*> outstanding_groups_; diff --git a/avahi_service_publisher_unittest.cc b/avahi_service_publisher_unittest.cc index 5c56b67..d9a29cc 100644 --- a/avahi_service_publisher_unittest.cc +++ b/avahi_service_publisher_unittest.cc @@ -72,7 +72,7 @@ class AvahiServicePublisherTest : public ::testing::Test { mock_bus_.get(), kServiceName, ObjectPath(kServerPath)); group_proxy_ = new dbus::MockObjectProxy( mock_bus_.get(), kServiceName, ObjectPath(kGroupPath)); - publisher_.reset(new AvahiServicePublisher(kHost, "uuid", "name", "note", + publisher_.reset(new AvahiServicePublisher(kHost, "uuid", mock_bus_, avahi_proxy_)); // Ignore threading concerns. EXPECT_CALL(*mock_bus_, AssertOnOriginThread()).Times(AnyNumber()); diff --git a/dbus_constants.cc b/dbus_constants.cc index 559834d..00a830c 100644 --- a/dbus_constants.cc +++ b/dbus_constants.cc @@ -18,8 +18,6 @@ const char kManagerServicePath[] = "/org/chromium/peerd/Manager"; const char kManagerExposeService[] = "ExposeService"; const char kManagerPing[] = "Ping"; const char kManagerRemoveExposedService[] = "RemoveExposedService"; -const char kManagerSetFriendlyName[] = "SetFriendlyName"; -const char kManagerSetNote[] = "SetNote"; const char kManagerStartMonitoring[] = "StartMonitoring"; const char kManagerStopMonitoring[] = "StopMonitoring"; @@ -27,9 +25,7 @@ const char kPeerInterface[] = "org.chromium.peerd.Peer"; const char kSelfPath[] = "/org/chromium/peerd/Self"; const char kPeerPrefix[] = "/org/chromium/peerd/peers/"; -const char kPeerFriendlyName[] = "FriendlyName"; const char kPeerLastSeen[] = "LastSeen"; -const char kPeerNote[] = "Note"; const char kPeerUUID[] = "UUID"; const char kServiceInterface[] = "org.chromium.peerd.Service"; diff --git a/dbus_constants.h b/dbus_constants.h index c202e43..26b1574 100644 --- a/dbus_constants.h +++ b/dbus_constants.h @@ -23,8 +23,6 @@ extern const char kManagerServicePath[]; extern const char kManagerExposeService[]; extern const char kManagerPing[]; extern const char kManagerRemoveExposedService[]; -extern const char kManagerSetFriendlyName[]; -extern const char kManagerSetNote[]; extern const char kManagerStartMonitoring[]; extern const char kManagerStopMonitoring[]; @@ -34,9 +32,7 @@ extern const char kSelfPath[]; extern const char kPeerPrefix[]; // Properties exposed as part of kPeerInterface. -extern const char kPeerFriendlyName[]; extern const char kPeerLastSeen[]; -extern const char kPeerNote[]; extern const char kPeerUUID[]; // Interface implemented by the service objects. diff --git a/discovered_peer.cc b/discovered_peer.cc index b19013e..a203cd8 100644 --- a/discovered_peer.cc +++ b/discovered_peer.cc @@ -23,17 +23,9 @@ DiscoveredPeer::DiscoveredPeer(const scoped_refptr<dbus::Bus>& bus, discovered_on_technologies_(which_technology) { } -void DiscoveredPeer::UpdateFromAdvertisement(const std::string& name, - const std::string& note, - const base::Time& last_seen, +void DiscoveredPeer::UpdateFromAdvertisement(const base::Time& last_seen, tech_t technology) { - if (!IsValidFriendlyName(nullptr, name) || - !IsValidNote(nullptr, note) || - !IsValidUpdateTime(nullptr, last_seen)) { - return; - } - SetFriendlyName(nullptr, name); - SetNote(nullptr, note); + if (!IsValidUpdateTime(nullptr, last_seen)) { return; } SetLastSeen(nullptr, last_seen); discovered_on_technologies_ |= technology; } diff --git a/discovered_peer.h b/discovered_peer.h index db67852..07e96dd 100644 --- a/discovered_peer.h +++ b/discovered_peer.h @@ -23,13 +23,11 @@ class DiscoveredPeer : public Peer { technologies::tech_t which_technology); ~DiscoveredPeer() override = default; - // Update |this| with the most recent versions of |name|, |note|, and - // |last_seen|. Note that if |last_seen| is older than the current value - // we'll discard this advertisement. Remember that we've seen this peer - // on the given |technology|. - virtual void UpdateFromAdvertisement(const std::string& name, - const std::string& note, - const base::Time& last_seen, + // Update |this| with the most recent time |last_seen|. Note that if + // |last_seen| is older than the current value we'll discard this + // advertisement. Remember that we've seen this peer on the given + // |technology|. + virtual void UpdateFromAdvertisement(const base::Time& last_seen, technologies::tech_t technology); // Add or update an existing service, and record that we've seen it // on the given |technology|. Note that if the service has been updated diff --git a/discovered_peer_unittest.cc b/discovered_peer_unittest.cc index bef4a2c..cdda8a4 100644 --- a/discovered_peer_unittest.cc +++ b/discovered_peer_unittest.cc @@ -39,16 +39,10 @@ const char kServicePath[] = "/org/chromium/peerd/peers/1/services/1"; const char kPeerId[] = "123e4567-e89b-12d3-a456-426655440000"; // Initial peer values. -const char kName[] = "friendly name"; -const char kNote[] = "descriptive note"; const time_t kPeerLastSeen = 100; // Updated version of those fields. -const char kNewName[] = "new friendly name"; -const char kNewNote[] = "new descriptive note"; const time_t kNewPeerLastSeen = 200; // Bad values for peer fields. -const char kBadName[] = "#evil name"; -const char kBadNote[] = "#evil note"; const time_t kStalePeerLastSeen = 5; // Service bits. const char kServiceId[] = "a-service-id"; @@ -79,7 +73,7 @@ class DiscoveredPeerTest : public testing::Test { peer_.reset(new DiscoveredPeer{bus_, nullptr, ObjectPath{kPeerPath}, kFakeTech1}); EXPECT_TRUE(peer_->RegisterAsync( - nullptr, kPeerId, kName, kNote, Time::FromTimeT(kPeerLastSeen), + nullptr, kPeerId, Time::FromTimeT(kPeerLastSeen), AsyncEventSequencer::GetDefaultCompletionAction())); // By default, no services should be exported. EXPECT_CALL(*bus_, GetExportedObject(_)) .Times(0); @@ -99,8 +93,6 @@ class DiscoveredPeerTest : public testing::Test { } void ExpectInitialPeerValues() { - EXPECT_EQ(kName, peer_->GetFriendlyName()); - EXPECT_EQ(kNote, peer_->GetNote()); EXPECT_EQ(Time::FromTimeT(kPeerLastSeen), peer_->GetLastSeen()); } @@ -153,36 +145,15 @@ class DiscoveredPeerTest : public testing::Test { }; TEST_F(DiscoveredPeerTest, CanUpdateFromAdvertisement) { - peer_->UpdateFromAdvertisement(kNewName, kNewNote, - Time::FromTimeT(kNewPeerLastSeen), + peer_->UpdateFromAdvertisement(Time::FromTimeT(kNewPeerLastSeen), kFakeTech1); - EXPECT_EQ(kNewName, peer_->GetFriendlyName()); - EXPECT_EQ(kNewNote, peer_->GetNote()); EXPECT_EQ(Time::FromTimeT(kNewPeerLastSeen), peer_->GetLastSeen()); EXPECT_EQ(1, peer_->GetTechnologyCount()); } -TEST_F(DiscoveredPeerTest, CannotUpdateFromInvalidAdvertisement) { - peer_->UpdateFromAdvertisement(kBadName, kNewNote, - Time::FromTimeT(kNewPeerLastSeen), - kFakeTech1); - ExpectInitialPeerValues(); -} - TEST_F(DiscoveredPeerTest, CannotPartiallyUpdatePeer) { - // Only invalid note. - peer_->UpdateFromAdvertisement(kNewName, kBadNote, - Time::FromTimeT(kNewPeerLastSeen), - kFakeTech1); - ExpectInitialPeerValues(); - // Only invalid name. - peer_->UpdateFromAdvertisement(kBadName, kNewNote, - Time::FromTimeT(kNewPeerLastSeen), - kFakeTech1); - ExpectInitialPeerValues(); // Stale advertisement. - peer_->UpdateFromAdvertisement(kNewName, kNewNote, - Time::FromTimeT(kStalePeerLastSeen), + peer_->UpdateFromAdvertisement(Time::FromTimeT(kStalePeerLastSeen), kFakeTech1); ExpectInitialPeerValues(); } @@ -228,8 +199,7 @@ TEST_F(DiscoveredPeerTest, CannotPartiallyUpdateService) { } TEST_F(DiscoveredPeerTest, ShouldRejectStaleServiceUpdate) { - peer_->UpdateFromAdvertisement(kName, kNote, - Time::FromTimeT(kPeerLastSeen), + peer_->UpdateFromAdvertisement(Time::FromTimeT(kPeerLastSeen), kFakeTech2); ExpectServiceExposed(); peer_->UpdateService(kServiceId, {}, {}, @@ -250,8 +220,7 @@ TEST_F(DiscoveredPeerTest, RemoveTechnologyIsRecursive) { } TEST_F(DiscoveredPeerTest, HandlesMultipleTechnologies) { - peer_->UpdateFromAdvertisement(kNewName, kNewNote, - Time::FromTimeT(kNewPeerLastSeen), + peer_->UpdateFromAdvertisement(Time::FromTimeT(kNewPeerLastSeen), kFakeTech2); EXPECT_EQ(2, peer_->GetTechnologyCount()); ExpectServiceExposed(); @@ -32,8 +32,6 @@ using peerd::dbus_constants::kManagerInterface; using peerd::dbus_constants::kManagerPing; using peerd::dbus_constants::kManagerRemoveExposedService; using peerd::dbus_constants::kManagerServicePath; -using peerd::dbus_constants::kManagerSetFriendlyName; -using peerd::dbus_constants::kManagerSetNote; using peerd::dbus_constants::kManagerStartMonitoring; using peerd::dbus_constants::kManagerStopMonitoring; using peerd::dbus_constants::kPingResponse; @@ -110,12 +108,6 @@ void Manager::RegisterAsync(const CompletionAction& completion_callback) { itf->AddMethodHandler(kManagerRemoveExposedService, base::Unretained(this), &Manager::RemoveExposedService); - itf->AddMethodHandler(kManagerSetFriendlyName, - base::Unretained(this), - &Manager::SetFriendlyName); - itf->AddMethodHandler(kManagerSetNote, - base::Unretained(this), - &Manager::SetNote); itf->AddMethodHandler(kManagerPing, base::Unretained(this), &Manager::Ping); @@ -123,8 +115,6 @@ void Manager::RegisterAsync(const CompletionAction& completion_callback) { const bool self_success = self_->RegisterAsync( &error, base::GenerateGUID(), // Every boot is a new GUID for now. - "CrOS Core Device", // TODO(wiley): persist name to disk. - "", // TODO(wiley): persist note to disk. base::Time::UnixEpoch(), sequencer->GetHandler("Failed exporting Self.", true)); CHECK(self_success) << "Failed to RegisterAsync Self."; @@ -237,15 +227,6 @@ void Manager::RemoveExposedService(ErrorPtr* error, // information. } -void Manager::SetFriendlyName(ErrorPtr* error, - const string& friendly_name) { - self_->SetFriendlyName(error, friendly_name); -} - -void Manager::SetNote(ErrorPtr* error, const string& note) { - self_->SetNote(error, note); -} - string Manager::Ping(ErrorPtr* error) { return kPingResponse; } @@ -254,8 +235,8 @@ void Manager::ShouldRefreshAvahiPublisher() { LOG(INFO) << "Publishing services to mDNS"; // The old publisher has been invalidated, and the records pulled. We should // re-register the records we care about. - self_->RegisterServicePublisher(avahi_client_->GetPublisher( - self_->GetUUID(), self_->GetFriendlyName(), self_->GetNote())); + self_->RegisterServicePublisher( + avahi_client_->GetPublisher(self_->GetUUID())); } } // namespace peerd @@ -69,12 +69,6 @@ class Manager { chromeos::ErrorPtr* error, const std::string& service_token); - void SetFriendlyName( - chromeos::ErrorPtr* error, - const std::string& friendly_name); - - void SetNote(chromeos::ErrorPtr* error, const std::string& note); - std::string Ping(chromeos::ErrorPtr* error); private: diff --git a/mock_avahi_client.h b/mock_avahi_client.h index 89bb4ae..c28971a 100644 --- a/mock_avahi_client.h +++ b/mock_avahi_client.h @@ -22,11 +22,9 @@ class MockAvahiClient: public AvahiClient { MOCK_METHOD1(RegisterAsync, void(const CompletionAction& cb)); MOCK_METHOD1(RegisterOnAvahiRestartCallback, void(const OnAvahiRestartCallback& cb)); - MOCK_METHOD3(GetPublisher, + MOCK_METHOD1(GetPublisher, base::WeakPtr<ServicePublisherInterface>( - const std::string& uuid, - const std::string& friendly_name, - const std::string& note)); + const std::string& uuid)); MOCK_METHOD0(StartMonitoring, void()); MOCK_METHOD0(StopMonitoring, void()); }; diff --git a/mock_peer_manager.h b/mock_peer_manager.h index 9ed87b6..afd8de4 100644 --- a/mock_peer_manager.h +++ b/mock_peer_manager.h @@ -18,9 +18,7 @@ namespace peerd { class MockPeerManager : public PeerManagerInterface { public: - MOCK_METHOD5(OnPeerDiscovered, void(const std::string& peer_id, - const std::string& name, - const std::string& note, + MOCK_METHOD3(OnPeerDiscovered, void(const std::string& peer_id, const base::Time& last_seen, technologies::tech_t which_technology)); MOCK_METHOD6(OnServiceDiscovered, diff --git a/mock_published_peer.h b/mock_published_peer.h index 0f01dd5..2e1897e 100644 --- a/mock_published_peer.h +++ b/mock_published_peer.h @@ -31,20 +31,12 @@ class MockPublishedPeer : public PublishedPeer { : PublishedPeer(bus, nullptr, path) { } ~MockPublishedPeer() override = default; - MOCK_METHOD6(RegisterAsync, + MOCK_METHOD4(RegisterAsync, bool(chromeos::ErrorPtr* error, const std::string& uuid, - const std::string& friendly_name, - const std::string& note, uint64_t last_seen, const CompletionAction& completion_callback)); MOCK_CONST_METHOD0(GetUUID, std::string()); - MOCK_CONST_METHOD0(GetFriendlyName, std::string()); - MOCK_CONST_METHOD0(GetNote, std::string()); - MOCK_METHOD2(SetFriendlyName, bool(chromeos::ErrorPtr* error, - const std::string& friendly_name)); - MOCK_METHOD2(SetNote, bool(chromeos::ErrorPtr* error, - const std::string& note)); MOCK_METHOD2(SetLastSeen, bool(chromeos::ErrorPtr* error, const base::Time& last_seen)); @@ -21,10 +21,8 @@ using chromeos::dbus_utils::DBusInterface; using chromeos::dbus_utils::DBusObject; using chromeos::dbus_utils::ExportedObjectManager; using dbus::ObjectPath; -using peerd::dbus_constants::kPeerFriendlyName; using peerd::dbus_constants::kPeerInterface; using peerd::dbus_constants::kPeerLastSeen; -using peerd::dbus_constants::kPeerNote; using peerd::dbus_constants::kPeerUUID; using peerd::dbus_constants::kServicePathFragment; using std::map; @@ -32,29 +30,12 @@ using std::string; using std::vector; using std::unique_ptr; -namespace { - -const size_t kMaxFriendlyNameLength = 31; -const size_t kMaxNoteLength = 255; -const char kValidFriendlyNameCharacters[] = "abcdefghijklmnopqrstuvwxyz" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "0123456789" - "_-,.?! "; -const char kValidNoteCharacters[] = "abcdefghijklmnopqrstuvwxyz" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "0123456789" - "_-,.?! "; - -} // namespace - namespace peerd { namespace errors { namespace peer { const char kInvalidUUID[] = "peer.uuid"; -const char kInvalidName[] = "peer.name"; -const char kInvalidNote[] = "peer.note"; const char kInvalidTime[] = "peer.time"; const char kUnknownService[] = "peer.unknown_service"; @@ -72,8 +53,6 @@ Peer::Peer(const scoped_refptr<dbus::Bus>& bus, bool Peer::RegisterAsync( chromeos::ErrorPtr* error, const std::string& uuid, - const std::string& friendly_name, - const std::string& note, const Time& last_seen, const CompletionAction& completion_callback) { if (!base::IsValidGUID(uuid)) { @@ -82,31 +61,14 @@ bool Peer::RegisterAsync( return false; } uuid_.SetValue(uuid); - if (!SetFriendlyName(error, friendly_name)) { return false; } - if (!SetNote(error, note)) { return false; } if (!SetLastSeen(error, last_seen)) { return false; } DBusInterface* itf = dbus_object_->AddOrGetInterface(kPeerInterface); itf->AddProperty(kPeerUUID, &uuid_); - itf->AddProperty(kPeerFriendlyName, &name_); - itf->AddProperty(kPeerNote, ¬e_); itf->AddProperty(kPeerLastSeen, &last_seen_); dbus_object_->RegisterAsync(completion_callback); return true; } -bool Peer::SetFriendlyName(chromeos::ErrorPtr* error, - const string& friendly_name) { - if (!IsValidFriendlyName(error, friendly_name)) { return false; } - name_.SetValue(friendly_name); - return true; -} - -bool Peer::SetNote(chromeos::ErrorPtr* error, const string& note) { - if (!IsValidNote(error, note)) { return false; } - note_.SetValue(note); - return true; -} - bool Peer::SetLastSeen(chromeos::ErrorPtr* error, const Time& last_seen) { if (!IsValidUpdateTime(error, last_seen)) { return false; @@ -121,50 +83,10 @@ std::string Peer::GetUUID() const { return uuid_.value(); } -std::string Peer::GetFriendlyName() const { - return name_.value(); -} - -std::string Peer::GetNote() const { - return note_.value(); -} - Time Peer::GetLastSeen() const { return TimeDelta::FromMilliseconds(last_seen_.value()) + Time::UnixEpoch(); } -bool Peer::IsValidFriendlyName(chromeos::ErrorPtr* error, - const std::string& friendly_name) const { - if (friendly_name.length() > kMaxFriendlyNameLength) { - Error::AddToPrintf(error, kPeerdErrorDomain, errors::peer::kInvalidName, - "Bad length for %s: %" PRIuS, - kPeerFriendlyName, friendly_name.length()); - return false; - } - if (!base::ContainsOnlyChars(friendly_name, kValidFriendlyNameCharacters)) { - Error::AddToPrintf(error, kPeerdErrorDomain, errors::peer::kInvalidName, - "Invalid characters in %s.", kPeerFriendlyName); - return false; - } - return true; -} - -bool Peer::IsValidNote(chromeos::ErrorPtr* error, - const std::string& note) const { - if (note.length() > kMaxNoteLength) { - Error::AddToPrintf(error, kPeerdErrorDomain, errors::peer::kInvalidNote, - "Bad length for %s: %" PRIuS, - kPeerNote, note.length()); - return false; - } - if (!base::ContainsOnlyChars(note, kValidNoteCharacters)) { - Error::AddToPrintf(error, kPeerdErrorDomain, errors::peer::kInvalidNote, - "Invalid characters in %s.", kPeerNote); - return false; - } - return true; -} - bool Peer::IsValidUpdateTime(chromeos::ErrorPtr* error, const base::Time& last_seen) const { uint64_t milliseconds_since_epoch = 0; @@ -27,8 +27,6 @@ namespace errors { namespace peer { extern const char kInvalidUUID[]; -extern const char kInvalidName[]; -extern const char kInvalidNote[]; extern const char kInvalidTime[]; extern const char kUnknownService[]; @@ -47,19 +45,12 @@ class Peer { bool RegisterAsync( chromeos::ErrorPtr* error, const std::string& uuid, - const std::string& friendly_name, - const std::string& note, const base::Time& last_seen, const CompletionAction& completion_callback); virtual std::string GetUUID() const; - virtual std::string GetFriendlyName() const; - virtual std::string GetNote() const; virtual base::Time GetLastSeen() const; // Returns false on failure. - virtual bool SetFriendlyName(chromeos::ErrorPtr* error, - const std::string& friendly_name); - virtual bool SetNote(chromeos::ErrorPtr* error, const std::string& note); virtual bool SetLastSeen(chromeos::ErrorPtr* error, const base::Time& last_seen); @@ -78,10 +69,6 @@ class Peer { virtual bool RemoveService(chromeos::ErrorPtr* error, const std::string& service_id); - bool IsValidFriendlyName(chromeos::ErrorPtr* error, - const std::string& friendly_name) const; - bool IsValidNote(chromeos::ErrorPtr* error, - const std::string& note) const; bool IsValidUpdateTime(chromeos::ErrorPtr* error, const base::Time& last_seen) const; std::map<std::string, std::unique_ptr<Service>> services_; @@ -92,8 +79,6 @@ class Peer { scoped_refptr<dbus::Bus> bus_; size_t services_added_{0}; chromeos::dbus_utils::ExportedProperty<std::string> uuid_; - chromeos::dbus_utils::ExportedProperty<std::string> name_; - chromeos::dbus_utils::ExportedProperty<std::string> note_; chromeos::dbus_utils::ExportedProperty<uint64_t> last_seen_; std::unique_ptr<chromeos::dbus_utils::DBusObject> dbus_object_; dbus::ObjectPath service_path_prefix_; diff --git a/peer_manager_impl.cc b/peer_manager_impl.cc index 692d60e..9f29abb 100644 --- a/peer_manager_impl.cc +++ b/peer_manager_impl.cc @@ -26,16 +26,12 @@ PeerManagerImpl::PeerManagerImpl(const scoped_refptr<dbus::Bus> bus, } void PeerManagerImpl::OnPeerDiscovered(const string& peer_id, - const string& name, - const string& note, const base::Time& last_seen, tech_t which_technology) { - VLOG(1) << "Discovered peer=" << peer_id << " with name=" << name - << " with note=" << note; + VLOG(1) << "Discovered peer=" << peer_id; auto it = peers_.find(peer_id); if (it != peers_.end()) { - it->second->UpdateFromAdvertisement(name, note, last_seen, - which_technology); + it->second->UpdateFromAdvertisement(last_seen, which_technology); return; } dbus::ObjectPath path{ @@ -44,7 +40,7 @@ void PeerManagerImpl::OnPeerDiscovered(const string& peer_id, bus_, object_manager_, path, which_technology}}; scoped_refptr<AsyncEventSequencer> sequencer(new AsyncEventSequencer()); const bool registered = peer->RegisterAsync( - nullptr, peer_id, name, note, last_seen, + nullptr, peer_id, last_seen, sequencer->GetHandler("Failed to expose DiscoveredPeer.", true)); sequencer->OnAllTasksCompletedCall({}); if (registered) { @@ -63,9 +59,9 @@ void PeerManagerImpl::OnServiceDiscovered(const string& peer_id, auto it = peers_.find(peer_id); if (it == peers_.end()) { // A service was found that corresponds to no particular peer. - // We could just silently add a peer entry without name/note fields here, - // or we can discard the service. Lets discard the service until it is - // known that we need to support this case. + // We could just silently add a peer entry here, or we can discard the + // service. Lets discard the service until it is known that we need to + // support this case. LOG(WARNING) << "Found service=" << service_id << " but had no peer=" << peer_id; return; diff --git a/peer_manager_impl.h b/peer_manager_impl.h index e47da57..e5accb6 100644 --- a/peer_manager_impl.h +++ b/peer_manager_impl.h @@ -26,8 +26,6 @@ class PeerManagerImpl : public PeerManagerInterface { // Inherited from PeerManagerInterface. See comments there. void OnPeerDiscovered(const std::string& peer_id, - const std::string& name, - const std::string& note, const base::Time& last_seen, technologies::tech_t which_technology) override; void OnServiceDiscovered(const std::string& peer_id, diff --git a/peer_manager_impl_unittest.cc b/peer_manager_impl_unittest.cc index aba4c8f..3ebd09f 100644 --- a/peer_manager_impl_unittest.cc +++ b/peer_manager_impl_unittest.cc @@ -31,9 +31,6 @@ const char kPeerPath[] = "/org/chromium/peerd/peers/1"; const char kServicePath[] = "/org/chromium/peerd/peers/1/services/1"; const char kPeerId[] = "123e4567-e89b-12d3-a456-426655440000"; -const char kName[] = "friendly name"; -const char kBadName[] = "#evil name"; -const char kNote[] = "descriptive note"; const time_t kPeerLastSeen = 1; const char kServiceId[] = "a-service-id"; const char kBadServiceId[] = "#bad_service_id"; @@ -115,13 +112,13 @@ class PeerManagerImplTest : public testing::Test { TEST_F(PeerManagerImplTest, CanDiscoverPeer) { ExpectPeerExposed(); - manager_.OnPeerDiscovered(kPeerId, kName, kNote, + manager_.OnPeerDiscovered(kPeerId, Time::FromTimeT(kPeerLastSeen), kFakeTech1); } TEST_F(PeerManagerImplTest, CanDiscoverServiceOnPeer) { ExpectPeerExposed(); - manager_.OnPeerDiscovered(kPeerId, kName, kNote, + manager_.OnPeerDiscovered(kPeerId, Time::FromTimeT(kPeerLastSeen), kFakeTech1); ExpectServiceExposed(); manager_.OnServiceDiscovered(kPeerId, kServiceId, {}, {}, @@ -135,7 +132,7 @@ TEST_F(PeerManagerImplTest, CannotDiscoverServiceWithoutPeer) { TEST_F(PeerManagerImplTest, CanForgetPeer) { ExpectPeerExposed(); - manager_.OnPeerDiscovered(kPeerId, kName, kNote, + manager_.OnPeerDiscovered(kPeerId, Time::FromTimeT(kPeerLastSeen), kFakeTech1); ExpectPeerRemoved(); manager_.OnPeerRemoved(kPeerId, kFakeTech1); @@ -143,7 +140,7 @@ TEST_F(PeerManagerImplTest, CanForgetPeer) { TEST_F(PeerManagerImplTest, CanShutdownLoneTechnology) { ExpectPeerExposed(); - manager_.OnPeerDiscovered(kPeerId, kName, kNote, + manager_.OnPeerDiscovered(kPeerId, Time::FromTimeT(kPeerLastSeen), kFakeTech1); ExpectServiceExposed(); manager_.OnServiceDiscovered(kPeerId, kServiceId, {}, {}, @@ -153,14 +150,9 @@ TEST_F(PeerManagerImplTest, CanShutdownLoneTechnology) { manager_.OnTechnologyShutdown(kFakeTech1); } -TEST_F(PeerManagerImplTest, WillNotExposeCorruptPeer) { - manager_.OnPeerDiscovered(kPeerId, kBadName, kNote, - Time::FromTimeT(kPeerLastSeen), kFakeTech1); -} - TEST_F(PeerManagerImplTest, WillNotExposeCorruptService) { ExpectPeerExposed(); - manager_.OnPeerDiscovered(kPeerId, kName, kNote, + manager_.OnPeerDiscovered(kPeerId, Time::FromTimeT(kPeerLastSeen), kFakeTech1); manager_.OnServiceDiscovered(kPeerId, kBadServiceId, {}, {}, Time::FromTimeT(kServiceLastSeen), kFakeTech1); diff --git a/peer_manager_interface.h b/peer_manager_interface.h index e1411bc..1113fda 100644 --- a/peer_manager_interface.h +++ b/peer_manager_interface.h @@ -22,8 +22,6 @@ class PeerManagerInterface { // (according to |last_seen|) is maintained. We continue exposing // a peer until all technologies remove it. virtual void OnPeerDiscovered(const std::string& peer_id, - const std::string& name, - const std::string& note, const base::Time& last_seen, technologies::tech_t which_technology) = 0; // Adds or updates service for peer with |peer_id|. Corresponding diff --git a/peer_unittest.cc b/peer_unittest.cc index 1ac0187..008a755 100644 --- a/peer_unittest.cc +++ b/peer_unittest.cc @@ -25,8 +25,6 @@ using dbus::MockBus; using dbus::MockExportedObject; using dbus::ObjectPath; using peerd::Peer; -using peerd::errors::peer::kInvalidName; -using peerd::errors::peer::kInvalidNote; using peerd::errors::peer::kInvalidTime; using peerd::errors::peer::kInvalidUUID; using peerd::test_util::MakeMockCompletionAction; @@ -46,8 +44,6 @@ const char kServicePathPrefix[] = "/some/path/ending/with/services/"; const char kServicePath[] = "/some/path/ending/with/services/1"; const char kUUID[] = "123e4567-e89b-12d3-a456-426655440000"; -const char kValidName[] = "NAME"; -const char kValidNote[] = "notes are long and very descriptive for people."; } // namespace @@ -84,26 +80,19 @@ class PeerTest : public ::testing::Test { EXPECT_TRUE(peer->RegisterAsync( &error, kUUID, - kValidName, - kValidNote, base::Time::UnixEpoch() + base::TimeDelta::FromDays(1), MakeMockCompletionAction())); EXPECT_EQ(nullptr, error.get()); return peer; } - void AssertBadFactoryArgs(const string& uuid, - const string& name, - const string& note, - const string& error_code) { + void AssertBadFactoryArgs(const string& uuid, const string& error_code) { chromeos::ErrorPtr error; unique_ptr<Peer> peer{ new Peer{mock_bus_, nullptr, ObjectPath{kPeerPath}}}; EXPECT_FALSE(peer->RegisterAsync( &error, uuid, - name, - note, base::Time::UnixEpoch(), MakeMockCompletionAction())); ASSERT_NE(nullptr, error.get()); @@ -111,7 +100,7 @@ class PeerTest : public ::testing::Test { } void TestBadUUID(const string& uuid) { - AssertBadFactoryArgs(uuid, kValidName, kValidNote, kInvalidUUID); + AssertBadFactoryArgs(uuid, kInvalidUUID); } scoped_refptr<MockBus> mock_bus_{new MockBus{Bus::Options{}}}; @@ -141,52 +130,9 @@ TEST_F(PeerTest, ShouldRejectBadCharacterInUUID) { TestBadUUID(bad_uuid); } -TEST_F(PeerTest, ShouldRejectBadNameInFactory) { - AssertBadFactoryArgs(kUUID, "* is not allowed", kValidNote, kInvalidName); -} - -TEST_F(PeerTest, ShouldRejectBadNoteInFactory) { - AssertBadFactoryArgs(kUUID, kValidName, - "notes also may not contain *", kInvalidNote); -} - TEST_F(PeerTest, ShouldRegisterWithDBus) { auto peer = MakePeer(); EXPECT_EQ(peer->GetUUID(), kUUID); - EXPECT_EQ(peer->GetFriendlyName(), kValidName); - EXPECT_EQ(peer->GetNote(), kValidNote); -} - -TEST_F(PeerTest, ShouldRejectNameTooLong) { - auto peer = MakePeer(); - chromeos::ErrorPtr error; - EXPECT_FALSE(peer->SetFriendlyName(&error, string(33, 'a'))); - ASSERT_NE(nullptr, error.get()); - EXPECT_TRUE(error->HasError(kPeerdErrorDomain, kInvalidName)); -} - -TEST_F(PeerTest, ShouldRejectNameInvalidChars) { - auto peer = MakePeer(); - chromeos::ErrorPtr error; - EXPECT_FALSE(peer->SetFriendlyName(&error, "* is not allowed")); - ASSERT_NE(nullptr, error.get()); - EXPECT_TRUE(error->HasError(kPeerdErrorDomain, kInvalidName)); -} - -TEST_F(PeerTest, ShouldRejectNoteTooLong) { - auto peer = MakePeer(); - chromeos::ErrorPtr error; - EXPECT_FALSE(peer->SetNote(&error, string(256, 'a'))); - ASSERT_NE(nullptr, error.get()); - EXPECT_TRUE(error->HasError(kPeerdErrorDomain, kInvalidNote)); -} - -TEST_F(PeerTest, ShouldRejectNoteInvalidChars) { - auto peer = MakePeer(); - chromeos::ErrorPtr error; - EXPECT_FALSE(peer->SetNote(&error, "* is also not allowed in notes")); - ASSERT_NE(nullptr, error.get()); - EXPECT_TRUE(error->HasError(kPeerdErrorDomain, kInvalidNote)); } TEST_F(PeerTest, ShouldRejectStaleUpdate) { diff --git a/service_publisher_interface.h b/service_publisher_interface.h index 18e06e6..1b419c6 100644 --- a/service_publisher_interface.h +++ b/service_publisher_interface.h @@ -29,20 +29,6 @@ class ServicePublisherInterface { // a timely fashion, this is not guaranteed. virtual bool OnServiceRemoved(chromeos::ErrorPtr* error, const std::string& service_id) = 0; - // Signals to a service publisher that we have changed the friendly - // name of the local device. Returns true if this change has been - // accurately reflected in the technology specify service advertisement. - // Note that while publishers should make best efforts to inform peers - // of name changes in a timely fashion, this is not guaranteed. - virtual bool OnFriendlyNameChanged(chromeos::ErrorPtr* error, - const std::string& name) = 0; - // Signals to a service publisher that we have changed the descriptive - // note of the local device. Returns true if this change has been - // accurately reflected in the technology specify service advertisement. - // Note that while publishers should make best efforts to inform peers - // of note changes in a timely fashion, this is not guaranteed. - virtual bool OnNoteChanged(chromeos::ErrorPtr* error, - const std::string& note) = 0; }; } // namespace peerd |