Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(554)

Side by Side Diff: remoting/host/host_change_notification_listener.cc

Issue 2798393007: Use SignalingAddress in SignalStrategy insterface. (Closed)
Patch Set: header Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/host/host_change_notification_listener.h" 5 #include "remoting/host/host_change_notification_listener.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 return false; 48 return false;
49 49
50 const XmlElement* host_changed_element = 50 const XmlElement* host_changed_element =
51 stanza->FirstNamed(QName(kChromotingXmlNamespace, "host-changed")); 51 stanza->FirstNamed(QName(kChromotingXmlNamespace, "host-changed"));
52 if (!host_changed_element) 52 if (!host_changed_element)
53 return false; 53 return false;
54 54
55 const std::string& host_id = 55 const std::string& host_id =
56 host_changed_element->Attr(QName(kChromotingXmlNamespace, "hostid")); 56 host_changed_element->Attr(QName(kChromotingXmlNamespace, "hostid"));
57 const std::string& from = stanza->Attr(buzz::QN_FROM); 57 const std::string& from = stanza->Attr(buzz::QN_FROM);
58 const std::string& to = stanza->Attr(buzz::QN_TO); 58
59 std::string to_error;
60 SignalingAddress to =
61 SignalingAddress::Parse(stanza, SignalingAddress::TO, &to_error);
62
59 if (host_id == host_id_ && from == directory_bot_jid_ && 63 if (host_id == host_id_ && from == directory_bot_jid_ &&
60 to == signal_strategy_->GetLocalJid()) { 64 to == signal_strategy_->GetLocalAddress()) {
61 const std::string& operation = 65 const std::string& operation =
62 host_changed_element->Attr(QName(kChromotingXmlNamespace, "operation")); 66 host_changed_element->Attr(QName(kChromotingXmlNamespace, "operation"));
63 if (operation == "delete") { 67 if (operation == "delete") {
64 // OnHostDeleted() may want delete |signal_strategy_|, but SignalStrategy 68 // OnHostDeleted() may want delete |signal_strategy_|, but SignalStrategy
65 // objects cannot be deleted from a Listener callback, so OnHostDeleted() 69 // objects cannot be deleted from a Listener callback, so OnHostDeleted()
66 // has to be invoked later. 70 // has to be invoked later.
67 base::ThreadTaskRunnerHandle::Get()->PostTask( 71 base::ThreadTaskRunnerHandle::Get()->PostTask(
68 FROM_HERE, base::Bind(&HostChangeNotificationListener::OnHostDeleted, 72 FROM_HERE, base::Bind(&HostChangeNotificationListener::OnHostDeleted,
69 weak_factory_.GetWeakPtr())); 73 weak_factory_.GetWeakPtr()));
70 } 74 }
71 } else { 75 } else {
72 LOG(ERROR) << "Invalid host-changed message received: " << stanza->Str(); 76 LOG(ERROR) << "Invalid host-changed message received: " << stanza->Str();
73 } 77 }
74 return true; 78 return true;
75 } 79 }
76 80
77 void HostChangeNotificationListener::OnHostDeleted() { 81 void HostChangeNotificationListener::OnHostDeleted() {
78 listener_->OnHostDeleted(); 82 listener_->OnHostDeleted();
79 } 83 }
80 84
81 } // namespace remoting 85 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/heartbeat_sender_unittest.cc ('k') | remoting/host/host_change_notification_listener_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698