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

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

Issue 3087003: Added HostKeyPair class, signatures for heartbeat messages. (Closed)
Patch Set: - Created 10 years, 4 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
« no previous file with comments | « remoting/base/constants.cc ('k') | remoting/host/heartbeat_sender.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/chromoting_host.h" 5 #include "remoting/host/chromoting_host.h"
6 6
7 #include "base/stl_util-inl.h" 7 #include "base/stl_util-inl.h"
8 #include "base/task.h" 8 #include "base/task.h"
9 #include "build/build_config.h" 9 #include "build/build_config.h"
10 #include "remoting/base/constants.h" 10 #include "remoting/base/constants.h"
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 132
133 //////////////////////////////////////////////////////////////////////////// 133 ////////////////////////////////////////////////////////////////////////////
134 // JingleClient::Callback implementations 134 // JingleClient::Callback implementations
135 void ChromotingHost::OnStateChange(JingleClient* jingle_client, 135 void ChromotingHost::OnStateChange(JingleClient* jingle_client,
136 JingleClient::State state) { 136 JingleClient::State state) {
137 if (state == JingleClient::CONNECTED) { 137 if (state == JingleClient::CONNECTED) {
138 DCHECK_EQ(jingle_client_.get(), jingle_client); 138 DCHECK_EQ(jingle_client_.get(), jingle_client);
139 LOG(INFO) << "Host connected as " 139 LOG(INFO) << "Host connected as "
140 << jingle_client->GetFullJid() << "." << std::endl; 140 << jingle_client->GetFullJid() << "." << std::endl;
141 141
142 // Start heartbeating after we connected 142 // Start heartbeating after we've connected.
143 heartbeat_sender_ = new HeartbeatSender(); 143 heartbeat_sender_->Start();
144 heartbeat_sender_->Start(config_, jingle_client_.get());
145 } else if (state == JingleClient::CLOSED) { 144 } else if (state == JingleClient::CLOSED) {
146 LOG(INFO) << "Host disconnected from talk network." << std::endl; 145 LOG(INFO) << "Host disconnected from talk network." << std::endl;
147 heartbeat_sender_ = NULL; 146
147 // Stop heartbeating.
148 heartbeat_sender_->Stop();
148 149
149 // TODO(sergeyu): We should try reconnecting here instead of terminating 150 // TODO(sergeyu): We should try reconnecting here instead of terminating
150 // the host. 151 // the host.
151 // Post a shutdown task to properly shutdown the chromoting host. 152 // Post a shutdown task to properly shutdown the chromoting host.
152 context_->main_message_loop()->PostTask( 153 context_->main_message_loop()->PostTask(
153 FROM_HERE, NewRunnableMethod(this, &ChromotingHost::DoShutdown)); 154 FROM_HERE, NewRunnableMethod(this, &ChromotingHost::DoShutdown));
154 } 155 }
155 } 156 }
156 157
157 bool ChromotingHost::OnAcceptConnection( 158 bool ChromotingHost::OnAcceptConnection(
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 if (!config_->GetString(kXmppLoginConfigPath, &xmpp_login) || 213 if (!config_->GetString(kXmppLoginConfigPath, &xmpp_login) ||
213 !config_->GetString(kXmppAuthTokenConfigPath, &xmpp_auth_token)) { 214 !config_->GetString(kXmppAuthTokenConfigPath, &xmpp_auth_token)) {
214 LOG(ERROR) << "XMMP credentials are not defined in config."; 215 LOG(ERROR) << "XMMP credentials are not defined in config.";
215 return; 216 return;
216 } 217 }
217 218
218 // Connect to the talk network with a JingleClient. 219 // Connect to the talk network with a JingleClient.
219 jingle_client_ = new JingleClient(context_->jingle_thread()); 220 jingle_client_ = new JingleClient(context_->jingle_thread());
220 jingle_client_->Init(xmpp_login, xmpp_auth_token, 221 jingle_client_->Init(xmpp_login, xmpp_auth_token,
221 kChromotingTokenServiceName, this); 222 kChromotingTokenServiceName, this);
223
224 heartbeat_sender_ = new HeartbeatSender();
225 if (!heartbeat_sender_->Init(config_, jingle_client_.get())) {
226 LOG(ERROR) << "Failed to initialize HeartbeatSender.";
227 return;
228 }
222 } 229 }
223 230
224 void ChromotingHost::DoShutdown() { 231 void ChromotingHost::DoShutdown() {
225 DCHECK_EQ(context_->main_message_loop(), MessageLoop::current()); 232 DCHECK_EQ(context_->main_message_loop(), MessageLoop::current());
226 233
227 // No-op if this object is not started yet. 234 // No-op if this object is not started yet.
228 { 235 {
229 AutoLock auto_lock(lock_); 236 AutoLock auto_lock(lock_);
230 if (state_ != kStarted) 237 if (state_ != kStarted)
231 return; 238 return;
(...skipping 16 matching lines...) Expand all
248 jingle_client_->Close(); 255 jingle_client_->Close();
249 } 256 }
250 257
251 // Lastly call the shutdown task. 258 // Lastly call the shutdown task.
252 if (shutdown_task_.get()) { 259 if (shutdown_task_.get()) {
253 shutdown_task_->Run(); 260 shutdown_task_->Run();
254 } 261 }
255 } 262 }
256 263
257 } // namespace remoting 264 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/base/constants.cc ('k') | remoting/host/heartbeat_sender.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698