diff --git a/adb/adb.h b/adb/adb.h index 491fff32d..5187c8198 100644 --- a/adb/adb.h +++ b/adb/adb.h @@ -151,7 +151,7 @@ void handle_packet(apacket *p, atransport *t); void get_my_path(char *s, size_t maxLen); int launch_server(int server_port); -int adb_main(int is_daemon, int server_port, int ack_reply_fd); +int adb_server_main(int is_daemon, int server_port, int ack_reply_fd); /* initialize a transport object's func pointers and state */ #if ADB_HOST diff --git a/adb/client/main.cpp b/adb/client/main.cpp index 8d01af3bf..04b9882e5 100644 --- a/adb/client/main.cpp +++ b/adb/client/main.cpp @@ -86,8 +86,7 @@ static void close_stdin() { static void setup_daemon_logging(void) { const std::string log_file_path(GetLogFilePath()); - int fd = unix_open(log_file_path.c_str(), O_WRONLY | O_CREAT | O_APPEND, - 0640); + int fd = unix_open(log_file_path.c_str(), O_WRONLY | O_CREAT | O_APPEND, 0640); if (fd == -1) { fatal("cannot open '%s': %s", log_file_path.c_str(), strerror(errno)); } @@ -103,10 +102,10 @@ static void setup_daemon_logging(void) { LOG(INFO) << adb_version(); } -int adb_main(int is_daemon, int server_port, int ack_reply_fd) { +int adb_server_main(int is_daemon, int server_port, int ack_reply_fd) { #if defined(_WIN32) // adb start-server starts us up with stdout and stderr hooked up to - // anonymous pipes to. When the C Runtime sees this, it makes stderr and + // anonymous pipes. When the C Runtime sees this, it makes stderr and // stdout buffered, but to improve the chance that error output is seen, // unbuffer stdout and stderr just like if we were run at the console. // This also keeps stderr unbuffered when it is redirected to adb.log. @@ -120,8 +119,6 @@ int adb_main(int is_daemon, int server_port, int ack_reply_fd) { } SetConsoleCtrlHandler(ctrlc_handler, TRUE); -#else - signal(SIGPIPE, SIG_IGN); #endif init_transport_registration(); diff --git a/adb/commandline.cpp b/adb/commandline.cpp index 73c8912bd..bd3813ecf 100644 --- a/adb/commandline.cpp +++ b/adb/commandline.cpp @@ -1296,6 +1296,11 @@ int adb_commandline(int argc, const char **argv) { TransportType transport_type = kTransportAny; int ack_reply_fd = -1; +#if !defined(_WIN32) + // We'd rather have EPIPE than SIGPIPE. + signal(SIGPIPE, SIG_IGN); +#endif + // If defined, this should be an absolute path to // the directory containing all of the various system images // for a particular product. If not defined, and the adb @@ -1427,7 +1432,7 @@ int adb_commandline(int argc, const char **argv) { fprintf(stderr, "reply fd for adb server to client communication not specified.\n"); return usage(); } - r = adb_main(is_daemon, server_port, ack_reply_fd); + r = adb_server_main(is_daemon, server_port, ack_reply_fd); } else { r = launch_server(server_port); }