summaryrefslogtreecommitdiffstats
path: root/remoting/host/heartbeat_sender.cc
diff options
context:
space:
mode:
authorlambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-01 04:22:43 +0000
committerlambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-01 04:22:43 +0000
commitf43970abc4275e81657bb265fad336bb66dc9fcd (patch)
treedbc7c01a0e105c263ee9f5c0f85765a33d883ece /remoting/host/heartbeat_sender.cc
parent69f3836eadd8f84b4d1d5d4625171209edd097a7 (diff)
downloadchromium_src-f43970abc4275e81657bb265fad336bb66dc9fcd.zip
chromium_src-f43970abc4275e81657bb265fad336bb66dc9fcd.tar.gz
chromium_src-f43970abc4275e81657bb265fad336bb66dc9fcd.tar.bz2
Virtual Me2Me Host: Exit process if Host ID is invalid.
The exit-code from remoting_me2me_host will be used to communicate to the daemon that the Host ID was rejected as invalid. BUG=110046 TEST=Run remoting_me2me_host with invalid host.json Review URL: http://codereview.chromium.org/9301026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120031 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/host/heartbeat_sender.cc')
-rw-r--r--remoting/host/heartbeat_sender.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/remoting/host/heartbeat_sender.cc b/remoting/host/heartbeat_sender.cc
index f1ba515..d0eaba5 100644
--- a/remoting/host/heartbeat_sender.cc
+++ b/remoting/host/heartbeat_sender.cc
@@ -28,6 +28,9 @@ const char kHostIdAttr[] = "hostid";
const char kHeartbeatSignatureTag[] = "signature";
const char kSignatureTimeAttr[] = "time";
+const char kErrorTag[] = "error";
+const char kNotFoundTag[] = "item-not-found";
+
const char kHeartbeatResultTag[] = "heartbeat-result";
const char kSetIntervalTag[] = "set-interval";
@@ -80,6 +83,18 @@ void HeartbeatSender::DoSendStanza() {
void HeartbeatSender::ProcessResponse(const XmlElement* response) {
std::string type = response->Attr(buzz::QN_TYPE);
if (type == buzz::STR_ERROR) {
+ const XmlElement* error_element =
+ response->FirstNamed(QName(buzz::NS_CLIENT, kErrorTag));
+ if (error_element) {
+ if (error_element->FirstNamed(QName(buzz::NS_STANZA, kNotFoundTag))) {
+ // TODO(lambroslambrou): Trigger an application-defined callback to
+ // shut down the host properly, instead of just exiting here
+ // (http://crbug.com/112160).
+ LOG(ERROR) << "Received error: Host ID invalid";
+ exit(1);
+ }
+ }
+
LOG(ERROR) << "Received error in response to heartbeat: "
<< response->Str();
return;