diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-07 05:48:20 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-07 05:48:20 +0000 |
commit | b5a6afe4d47adfae0c403b00c393127955572453 (patch) | |
tree | 766577e4f33bcc923871c710be27cede682fded8 /remoting/host/heartbeat_sender.cc | |
parent | d93ad24560fc76f2d7912095aa6efd009a2e9b04 (diff) | |
download | chromium_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.cc | 57 |
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; |