OLD | NEW |
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 "tools/android/forwarder2/daemon.h" | 5 #include "tools/android/forwarder2/daemon.h" |
6 | 6 |
7 #include <errno.h> | 7 #include <errno.h> |
8 #include <fcntl.h> | 8 #include <fcntl.h> |
9 #include <signal.h> | 9 #include <signal.h> |
10 #include <sys/file.h> | 10 #include <sys/file.h> |
(...skipping 22 matching lines...) Expand all Loading... |
33 namespace { | 33 namespace { |
34 | 34 |
35 const int kBufferSize = 256; | 35 const int kBufferSize = 256; |
36 | 36 |
37 // Timeout constant used for polling when connecting to the daemon's Unix Domain | 37 // Timeout constant used for polling when connecting to the daemon's Unix Domain |
38 // Socket and also when waiting for its death when it is killed. | 38 // Socket and also when waiting for its death when it is killed. |
39 const int kNumTries = 100; | 39 const int kNumTries = 100; |
40 const int kIdleTimeMSec = 20; | 40 const int kIdleTimeMSec = 20; |
41 | 41 |
42 void InitLoggingForDaemon(const std::string& log_file) { | 42 void InitLoggingForDaemon(const std::string& log_file) { |
43 CHECK( | 43 logging::LoggingSettings settings; |
44 logging::InitLogging( | 44 settings.logging_dest = |
45 log_file.c_str(), | 45 log_file.empty() ? |
46 log_file.empty() ? | 46 logging::LOG_TO_SYSTEM_DEBUG_LOG : logging::LOG_TO_FILE; |
47 logging::LOG_ONLY_TO_SYSTEM_DEBUG_LOG : logging::LOG_ONLY_TO_FILE, | 47 settings.log_file = log_file.c_str(); |
48 logging::DONT_LOCK_LOG_FILE, logging::APPEND_TO_OLD_LOG_FILE, | 48 settings.lock_log = logging::DONT_LOCK_LOG_FILE; |
49 logging::ENABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS)); | 49 settings.dcheck_state = |
| 50 logging::ENABLE_DCHECK_FOR_NON_OFFICIAL_RELEASE_BUILDS; |
| 51 CHECK(logging::InitLogging(settings)); |
50 } | 52 } |
51 | 53 |
52 bool RunServerAcceptLoop(const std::string& welcome_message, | 54 bool RunServerAcceptLoop(const std::string& welcome_message, |
53 Socket* server_socket, | 55 Socket* server_socket, |
54 Daemon::ServerDelegate* server_delegate) { | 56 Daemon::ServerDelegate* server_delegate) { |
55 bool failed = false; | 57 bool failed = false; |
56 for (;;) { | 58 for (;;) { |
57 scoped_ptr<Socket> client_socket(new Socket()); | 59 scoped_ptr<Socket> client_socket(new Socket()); |
58 if (!server_socket->Accept(client_socket.get())) { | 60 if (!server_socket->Accept(client_socket.get())) { |
59 if (server_socket->DidReceiveEvent()) | 61 if (server_socket->DidReceiveEvent()) |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 return true; | 280 return true; |
279 } | 281 } |
280 usleep(kIdleTimeMSec * 1000); | 282 usleep(kIdleTimeMSec * 1000); |
281 } | 283 } |
282 LOG(ERROR) << "Timed out while killing daemon. " | 284 LOG(ERROR) << "Timed out while killing daemon. " |
283 "It might still be tearing down."; | 285 "It might still be tearing down."; |
284 return false; | 286 return false; |
285 } | 287 } |
286 | 288 |
287 } // namespace forwarder2 | 289 } // namespace forwarder2 |
OLD | NEW |