diff options
author | lambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-01 04:22:43 +0000 |
---|---|---|
committer | lambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-01 04:22:43 +0000 |
commit | f43970abc4275e81657bb265fad336bb66dc9fcd (patch) | |
tree | dbc7c01a0e105c263ee9f5c0f85765a33d883ece /remoting/host/heartbeat_sender.cc | |
parent | 69f3836eadd8f84b4d1d5d4625171209edd097a7 (diff) | |
download | chromium_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.cc | 15 |
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; |