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

Unified Diff: remoting/host/remoting_me2me_host.cc

Issue 10905081: Pass Me2Me config via stdin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Delete debugging and clean up comments. Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: remoting/host/remoting_me2me_host.cc
diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc
index 2d674635495f2a0d81f91a294ff827094411000e..d83d4b20445a37783998559ddb38aad5ac6ee45b 100644
--- a/remoting/host/remoting_me2me_host.cc
+++ b/remoting/host/remoting_me2me_host.cc
@@ -53,7 +53,8 @@
#include "remoting/protocol/me2me_host_authenticator_factory.h"
#if defined(OS_POSIX)
-#include "remoting/host/posix/sighup_listener.h"
+#include "remoting/host/posix/signal_handler.h"
+#include <signal.h>
Lambros 2012/09/05 16:35:54 nit: move system include above project include
Jamie 2012/09/05 21:15:38 Done.
#endif // defined(OS_POSIX)
#if defined(OS_MACOSX)
@@ -161,6 +162,24 @@ class HostProcess
return true;
}
+#if defined(OS_POSIX)
+ void SignalHandler(int signum) {
Sergey Ulanov 2012/09/04 22:01:48 Why not separate SighupHandler() and SigtermHandle
Jamie 2012/09/05 21:15:38 Done.
+ switch (signum) {
+ case SIGHUP:
+ LOG(INFO) << "Caught SIGHUP: Reloading config...";
+ ConfigUpdatedDelayed();
+ break;
+ case SIGTERM:
+ LOG(INFO) << "Caught SIGTERM: Shutting down...";
+ context_->network_task_runner()->PostTask(FROM_HERE, base::Bind(
+ &HostProcess::Shutdown, base::Unretained(this), kSuccessExitCode));
Lambros 2012/09/05 16:35:54 Could you comment why base::Unretained is safe her
Jamie 2012/09/05 21:15:38 Done.
+ break;
+ default:
+ LOG(ERROR) << "Ignoring unexpected signal " << signum;
+ }
+ }
+#endif
+
void ConfigUpdated() {
DCHECK(message_loop_.message_loop_proxy()->BelongsToCurrentThread());
@@ -213,8 +232,9 @@ class HostProcess
void ListenForConfigChanges() {
#if defined(OS_POSIX)
- remoting::RegisterHupSignalHandler(
- base::Bind(&HostProcess::ConfigUpdatedDelayed, base::Unretained(this)));
+ remoting::RegisterSignalHandler(
+ SIGHUP,
+ base::Bind(&HostProcess::SignalHandler, base::Unretained(this)));
#elif defined(OS_WIN)
scoped_refptr<base::files::FilePathWatcher::Delegate> delegate(
new ConfigChangedDelegate(
@@ -227,6 +247,14 @@ class HostProcess
#endif // defined (OS_WIN)
}
+#if defined(OS_POSIX)
+ void ListenForShutdownSignal() {
+ remoting::RegisterSignalHandler(
+ SIGTERM,
+ base::Bind(&HostProcess::SignalHandler, base::Unretained(this)));
+ }
+#endif // OS_POSIX
+
void CreateAuthenticatorFactory() {
DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
scoped_ptr<protocol::AuthenticatorFactory> factory(
@@ -269,12 +297,20 @@ class HostProcess
StartWatchingPolicy();
-#if defined(OS_MACOSX) || defined(OS_WIN)
context_->file_task_runner()->PostTask(
FROM_HERE,
base::Bind(&HostProcess::ListenForConfigChanges,
base::Unretained(this)));
-#endif
+
+#if defined(OS_POSIX)
+ remoting::SignalHandler handler = base::Bind(&HostProcess::SignalHandler,
+ base::Unretained(this));
+ context_->file_task_runner()->PostTask(
+ FROM_HERE,
+ base::Bind(&HostProcess::ListenForShutdownSignal,
+ base::Unretained(this)));
+#endif // OS_POSIX
+
message_loop_.Run();
#if defined(OS_MACOSX) || defined(OS_WIN)

Powered by Google App Engine
This is Rietveld 408576698