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 <errno.h> | 5 #include <errno.h> |
6 #include <signal.h> | 6 #include <signal.h> |
7 #include <sys/types.h> | 7 #include <sys/types.h> |
8 #include <sys/wait.h> | 8 #include <sys/wait.h> |
9 #include <unistd.h> | 9 #include <unistd.h> |
10 | 10 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 #include "tools/android/forwarder2/pipe_notifier.h" | 42 #include "tools/android/forwarder2/pipe_notifier.h" |
43 #include "tools/android/forwarder2/socket.h" | 43 #include "tools/android/forwarder2/socket.h" |
44 #include "tools/android/forwarder2/util.h" | 44 #include "tools/android/forwarder2/util.h" |
45 | 45 |
46 namespace forwarder2 { | 46 namespace forwarder2 { |
47 namespace { | 47 namespace { |
48 | 48 |
49 const char kLogFilePath[] = "/tmp/host_forwarder_log"; | 49 const char kLogFilePath[] = "/tmp/host_forwarder_log"; |
50 const char kDaemonIdentifier[] = "chrome_host_forwarder_daemon"; | 50 const char kDaemonIdentifier[] = "chrome_host_forwarder_daemon"; |
51 | 51 |
52 const char kKillServerCommand[] = "kill-server"; | |
53 const char kForwardCommand[] = "forward"; | |
54 | |
55 const int kBufSize = 256; | 52 const int kBufSize = 256; |
56 | 53 |
57 // Needs to be global to be able to be accessed from the signal handler. | 54 // Needs to be global to be able to be accessed from the signal handler. |
58 PipeNotifier* g_notifier = NULL; | 55 PipeNotifier* g_notifier = NULL; |
59 | 56 |
60 // Lets the daemon fetch the exit notifier file descriptor. | 57 // Lets the daemon fetch the exit notifier file descriptor. |
61 int GetExitNotifierFD() { | 58 int GetExitNotifierFD() { |
62 DCHECK(g_notifier); | 59 DCHECK(g_notifier); |
63 return g_notifier->receiver_fd(); | 60 return g_notifier->receiver_fd(); |
64 } | 61 } |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 ClientDelegate(const Pickle& command_pickle) | 354 ClientDelegate(const Pickle& command_pickle) |
358 : command_pickle_(command_pickle), | 355 : command_pickle_(command_pickle), |
359 has_failed_(false) { | 356 has_failed_(false) { |
360 } | 357 } |
361 | 358 |
362 bool has_failed() const { return has_failed_; } | 359 bool has_failed() const { return has_failed_; } |
363 | 360 |
364 // Daemon::ClientDelegate: | 361 // Daemon::ClientDelegate: |
365 virtual void OnDaemonReady(Socket* daemon_socket) override { | 362 virtual void OnDaemonReady(Socket* daemon_socket) override { |
366 // Send the forward command to the daemon. | 363 // Send the forward command to the daemon. |
367 CHECK_EQ(command_pickle_.size(), | 364 CHECK_EQ(static_cast<long>(command_pickle_.size()), |
368 daemon_socket->WriteNumBytes(command_pickle_.data(), | 365 daemon_socket->WriteNumBytes(command_pickle_.data(), |
369 command_pickle_.size())); | 366 command_pickle_.size())); |
370 char buf[kBufSize]; | 367 char buf[kBufSize]; |
371 const int bytes_read = daemon_socket->Read( | 368 const int bytes_read = daemon_socket->Read( |
372 buf, sizeof(buf) - 1 /* leave space for null terminator */); | 369 buf, sizeof(buf) - 1 /* leave space for null terminator */); |
373 CHECK_GT(bytes_read, 0); | 370 CHECK_GT(bytes_read, 0); |
374 DCHECK(bytes_read < sizeof(buf)); | 371 DCHECK(static_cast<size_t>(bytes_read) < sizeof(buf)); |
375 buf[bytes_read] = 0; | 372 buf[bytes_read] = 0; |
376 base::StringPiece msg(buf, bytes_read); | 373 base::StringPiece msg(buf, bytes_read); |
377 if (msg.starts_with("ERROR")) { | 374 if (msg.starts_with("ERROR")) { |
378 LOG(ERROR) << msg; | 375 LOG(ERROR) << msg; |
379 has_failed_ = true; | 376 has_failed_ = true; |
380 return; | 377 return; |
381 } | 378 } |
382 printf("%s\n", buf); | 379 printf("%s\n", buf); |
383 } | 380 } |
384 | 381 |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
451 | 448 |
452 return client_delegate.has_failed() || daemon_delegate.has_failed(); | 449 return client_delegate.has_failed() || daemon_delegate.has_failed(); |
453 } | 450 } |
454 | 451 |
455 } // namespace | 452 } // namespace |
456 } // namespace forwarder2 | 453 } // namespace forwarder2 |
457 | 454 |
458 int main(int argc, char** argv) { | 455 int main(int argc, char** argv) { |
459 return forwarder2::RunHostForwarder(argc, argv); | 456 return forwarder2::RunHostForwarder(argc, argv); |
460 } | 457 } |
OLD | NEW |