diff options
Diffstat (limited to 'logd/LogReader.cpp')
-rw-r--r-- | logd/LogReader.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/logd/LogReader.cpp b/logd/LogReader.cpp index 60a3507..8458c19 100644 --- a/logd/LogReader.cpp +++ b/logd/LogReader.cpp @@ -16,14 +16,16 @@ #include <ctype.h> #include <poll.h> +#include <sys/prctl.h> #include <sys/socket.h> + #include <cutils/sockets.h> #include "LogReader.h" #include "FlushCommand.h" LogReader::LogReader(LogBuffer *logbuf) - : SocketListener("logdr", true) + : SocketListener(getLogSocket(), true) , mLogbuf(*logbuf) { } @@ -35,6 +37,8 @@ void LogReader::notifyNewLog() { } bool LogReader::onDataAvailable(SocketClient *cli) { + prctl(PR_SET_NAME, "logd.reader"); + char buffer[255]; int len = read(cli->getSocket(), buffer, sizeof(buffer) - 1); @@ -167,3 +171,16 @@ void LogReader::doSocketDelete(SocketClient *cli) { } LogTimeEntry::unlock(); } + +int LogReader::getLogSocket() { + static const char socketName[] = "logdr"; + int sock = android_get_control_socket(socketName); + + if (sock < 0) { + sock = socket_local_server(socketName, + ANDROID_SOCKET_NAMESPACE_RESERVED, + SOCK_SEQPACKET); + } + + return sock; +} |