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

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

Issue 1061903002: Disable chromoting service on permanent errors. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/daemon_process.h" 5 #include "remoting/host/daemon_process.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 if (!handled) { 125 if (!handled) {
126 LOG(ERROR) << "Received unexpected IPC type: " << message.type(); 126 LOG(ERROR) << "Received unexpected IPC type: " << message.type();
127 CrashNetworkProcess(FROM_HERE); 127 CrashNetworkProcess(FROM_HERE);
128 } 128 }
129 129
130 return handled; 130 return handled;
131 } 131 }
132 132
133 void DaemonProcess::OnPermanentError(int exit_code) { 133 void DaemonProcess::OnPermanentError(int exit_code) {
134 DCHECK(caller_task_runner()->BelongsToCurrentThread()); 134 DCHECK(caller_task_runner()->BelongsToCurrentThread());
135 DCHECK(kMinPermanentErrorExitCode <= exit_code &&
136 exit_code <= kMaxPermanentErrorExitCode);
137
135 Stop(); 138 Stop();
136 } 139 }
137 140
138 void DaemonProcess::CloseDesktopSession(int terminal_id) { 141 void DaemonProcess::CloseDesktopSession(int terminal_id) {
139 DCHECK(caller_task_runner()->BelongsToCurrentThread()); 142 DCHECK(caller_task_runner()->BelongsToCurrentThread());
140 143
141 // Validate the supplied terminal ID. An attempt to use a desktop session ID 144 // Validate the supplied terminal ID. An attempt to use a desktop session ID
142 // that couldn't possibly have been allocated is considered a protocol error 145 // that couldn't possibly have been allocated is considered a protocol error
143 // and the network process will be restarted. 146 // and the network process will be restarted.
144 if (!WasTerminalIdAllocated(terminal_id)) { 147 if (!WasTerminalIdAllocated(terminal_id)) {
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_, 359 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_,
357 OnClientRouteChange(jid, channel_name, parsed_route)); 360 OnClientRouteChange(jid, channel_name, parsed_route));
358 } 361 }
359 362
360 void DaemonProcess::OnHostStarted(const std::string& xmpp_login) { 363 void DaemonProcess::OnHostStarted(const std::string& xmpp_login) {
361 DCHECK(caller_task_runner()->BelongsToCurrentThread()); 364 DCHECK(caller_task_runner()->BelongsToCurrentThread());
362 365
363 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_, OnStart(xmpp_login)); 366 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_, OnStart(xmpp_login));
364 } 367 }
365 368
366 void DaemonProcess::OnHostShutdown() { 369 void DaemonProcess::OnHostShutdown(int exit_code) {
Sergey Ulanov 2015/04/07 21:50:18 It looks like ChromotingNetworkDaemonMsg_HostShutd
367 DCHECK(caller_task_runner()->BelongsToCurrentThread()); 370 DCHECK(caller_task_runner()->BelongsToCurrentThread());
368 371
369 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_, OnShutdown()); 372 if (kMinPermanentErrorExitCode <= exit_code &&
373 exit_code <= kMaxPermanentErrorExitCode) {
374 OnPermanentError(exit_code);
375 return;
376 }
377 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_,
378 OnShutdown((HostExitCodes)exit_code));
370 } 379 }
371 380
372 void DaemonProcess::DeleteAllDesktopSessions() { 381 void DaemonProcess::DeleteAllDesktopSessions() {
373 while (!desktop_sessions_.empty()) { 382 while (!desktop_sessions_.empty()) {
374 delete desktop_sessions_.front(); 383 delete desktop_sessions_.front();
375 desktop_sessions_.pop_front(); 384 desktop_sessions_.pop_front();
376 } 385 }
377 } 386 }
378 387
379 } // namespace remoting 388 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698