Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0516aded authored by Mark Salyzyn's avatar Mark Salyzyn Committed by Gerrit Code Review
Browse files

Merge "logd: libsysutils: logd startup outside init environment"

parents 25f07f77 dfc47e86
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ private:
public:
    FrameworkListener(const char *socketName);
    FrameworkListener(const char *socketName, bool withSeq);
    FrameworkListener(int sock);
    virtual ~FrameworkListener() {}

protected:
+5 −0
Original line number Diff line number Diff line
@@ -39,6 +39,11 @@ FrameworkListener::FrameworkListener(const char *socketName) :
    init(socketName, false);
}

FrameworkListener::FrameworkListener(int sock) :
                            SocketListener(sock, true) {
    init(NULL, false);
}

void FrameworkListener::init(const char *socketName UNUSED, bool withSeq) {
    mCommands = new FrameworkCommandCollection();
    errorRate = 0;
+15 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include <sys/socket.h>
#include <sys/types.h>

#include <cutils/sockets.h>
#include <private/android_filesystem_config.h>
#include <sysutils/SocketClient.h>

@@ -32,7 +33,7 @@

CommandListener::CommandListener(LogBuffer *buf, LogReader * /*reader*/,
                                 LogListener * /*swl*/)
        : FrameworkListener("logd")
        : FrameworkListener(getLogSocket())
        , mBuf(*buf) {
    // registerCmd(new ShutdownCmd(buf, writer, swl));
    registerCmd(new ClearCmd(buf));
@@ -283,3 +284,16 @@ int CommandListener::SetPruneListCmd::runCommand(SocketClient *cli,

    return 0;
}

int CommandListener::getLogSocket() {
    static const char socketName[] = "logd";
    int sock = android_get_control_socket(socketName);

    if (sock < 0) {
        sock = socket_local_server(socketName,
                                   ANDROID_SOCKET_NAMESPACE_RESERVED,
                                   SOCK_STREAM);
    }

    return sock;
}
+2 −0
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@ public:
    virtual ~CommandListener() {}

private:
    static int getLogSocket();

    class ShutdownCmd : public LogCommand {
        LogBuffer &mBuf;
        LogReader &mReader;
+9 −1
Original line number Diff line number Diff line
@@ -107,7 +107,15 @@ bool LogListener::onDataAvailable(SocketClient *cli) {
}

int LogListener::getLogSocket() {
    int sock = android_get_control_socket("logdw");
    static const char socketName[] = "logdw";
    int sock = android_get_control_socket(socketName);

    if (sock < 0) {
        sock = socket_local_server(socketName,
                                   ANDROID_SOCKET_NAMESPACE_RESERVED,
                                   SOCK_DGRAM);
    }

    int on = 1;
    if (setsockopt(sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)) < 0) {
        return -1;
Loading