summaryrefslogtreecommitdiffstats
path: root/remoting/host/heartbeat_sender.cc
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-07 05:48:20 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-07 05:48:20 +0000
commitb5a6afe4d47adfae0c403b00c393127955572453 (patch)
tree766577e4f33bcc923871c710be27cede682fded8 /remoting/host/heartbeat_sender.cc
parentd93ad24560fc76f2d7912095aa6efd009a2e9b04 (diff)
downloadchromium_src-b5a6afe4d47adfae0c403b00c393127955572453.zip
chromium_src-b5a6afe4d47adfae0c403b00c393127955572453.tar.gz
chromium_src-b5a6afe4d47adfae0c403b00c393127955572453.tar.bz2
Remove dependency on HostConfig from ChromotingHost and other classes.
Remove dependency on HostConfig from ChromotingHost, RegisterSupportHostRequest and HeartbeatSender. Also replaced ChromotingHost::SetSharedSecret() with SetAuthenticatorFactory() to support new authentication mechanism. BUG=105214 Review URL: http://codereview.chromium.org/9022045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116818 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/host/heartbeat_sender.cc')
-rw-r--r--remoting/host/heartbeat_sender.cc57
1 files changed, 18 insertions, 39 deletions
diff --git a/remoting/host/heartbeat_sender.cc b/remoting/host/heartbeat_sender.cc
index 27ac108..f1ba515 100644
--- a/remoting/host/heartbeat_sender.cc
+++ b/remoting/host/heartbeat_sender.cc
@@ -10,7 +10,6 @@
#include "base/string_number_conversions.h"
#include "base/time.h"
#include "remoting/base/constants.h"
-#include "remoting/host/host_config.h"
#include "remoting/jingle_glue/iq_sender.h"
#include "remoting/jingle_glue/jingle_thread.h"
#include "remoting/jingle_glue/signal_strategy.h"
@@ -23,6 +22,7 @@ using buzz::XmlElement;
namespace remoting {
namespace {
+
const char kHeartbeatQueryTag[] = "heartbeat";
const char kHostIdAttr[] = "hostid";
const char kHeartbeatSignatureTag[] = "signature";
@@ -32,56 +32,37 @@ const char kHeartbeatResultTag[] = "heartbeat-result";
const char kSetIntervalTag[] = "set-interval";
const int64 kDefaultHeartbeatIntervalMs = 5 * 60 * 1000; // 5 minutes.
-}
-
-HeartbeatSender::HeartbeatSender()
- : state_(CREATED),
- signal_strategy_(NULL),
- interval_ms_(kDefaultHeartbeatIntervalMs) {
-}
-
-HeartbeatSender::~HeartbeatSender() {
- if (signal_strategy_)
- signal_strategy_->RemoveListener(this);
-}
-
-bool HeartbeatSender::Init(SignalStrategy* signal_strategy,
- MutableHostConfig* config) {
- DCHECK(state_ == CREATED);
- if (!config->GetString(kHostIdConfigPath, &host_id_)) {
- LOG(ERROR) << "host_id is not defined in the config.";
- return false;
- }
+} // namespace
- if (!key_pair_.Load(config)) {
- return false;
- }
+HeartbeatSender::HeartbeatSender(
+ const std::string& host_id,
+ SignalStrategy* signal_strategy,
+ HostKeyPair* key_pair)
+ : host_id_(host_id),
+ signal_strategy_(signal_strategy),
+ key_pair_(key_pair),
+ interval_ms_(kDefaultHeartbeatIntervalMs) {
+ DCHECK(signal_strategy_);
+ DCHECK(key_pair_);
- DCHECK(signal_strategy);
- signal_strategy_ = signal_strategy;
signal_strategy_->AddListener(this);
- state_ = INITIALIZED;
-
- // Update the state if the |signal_strategy_| is already connected.
+ // Start heartbeats if the |signal_strategy_| is already connected.
OnSignalStrategyStateChange(signal_strategy_->GetState());
+}
- return true;
+HeartbeatSender::~HeartbeatSender() {
+ signal_strategy_->RemoveListener(this);
}
void HeartbeatSender::OnSignalStrategyStateChange(SignalStrategy::State state) {
if (state == SignalStrategy::CONNECTED) {
- DCHECK(state_ == INITIALIZED || state_ == STOPPED);
- state_ = STARTED;
-
iq_sender_.reset(new IqSender(signal_strategy_));
-
DoSendStanza();
timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(interval_ms_),
this, &HeartbeatSender::DoSendStanza);
} else if (state == SignalStrategy::DISCONNECTED) {
- state_ = STOPPED;
request_.reset();
iq_sender_.reset();
timer_.Stop();
@@ -89,8 +70,6 @@ void HeartbeatSender::OnSignalStrategyStateChange(SignalStrategy::State state) {
}
void HeartbeatSender::DoSendStanza() {
- DCHECK_EQ(state_, STARTED);
-
VLOG(1) << "Sending heartbeat stanza to " << kChromotingBotJid;
request_.reset(iq_sender_->SendIq(
buzz::STR_SET, kChromotingBotJid, CreateHeartbeatMessage(),
@@ -133,7 +112,7 @@ void HeartbeatSender::SetInterval(int interval) {
interval_ms_ = interval;
// Restart the timer with the new interval.
- if (state_ == STARTED) {
+ if (timer_.IsRunning()) {
timer_.Stop();
timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds(interval_ms_),
this, &HeartbeatSender::DoSendStanza);
@@ -159,7 +138,7 @@ XmlElement* HeartbeatSender::CreateSignature() {
QName(kChromotingXmlNamespace, kSignatureTimeAttr), time_str);
std::string message = signal_strategy_->GetLocalJid() + ' ' + time_str;
- std::string signature(key_pair_.GetSignature(message));
+ std::string signature(key_pair_->GetSignature(message));
signature_tag->AddText(signature);
return signature_tag;