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

Commit 7b87365e authored by Mark Salyzyn's avatar Mark Salyzyn
Browse files

logd: readlog apps get logger_entry_v4

Adds the uid field to outgoing content for readlog applications.
AID_LOG, AID_ROOT and AID_SYSTEM gain access to the information.

Bug: 25996918
Change-Id: I0254303c19d174cbf5e722c38844be5c54410c85
parent 9b292f56
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -846,7 +846,7 @@ uint64_t LogBuffer::flushTo(
        pthread_mutex_unlock(&mLogElementsLock);

        // range locking in LastLogTimes looks after us
        max = element->flushTo(reader, this);
        max = element->flushTo(reader, this, privileged);

        if (max == element->FLUSH_ERROR) {
            return max;
+9 −5
Original line number Diff line number Diff line
@@ -194,21 +194,25 @@ size_t LogBufferElement::populateDroppedMessage(char *&buffer,
    return retval;
}

uint64_t LogBufferElement::flushTo(SocketClient *reader, LogBuffer *parent) {
    struct logger_entry_v3 entry;
uint64_t LogBufferElement::flushTo(SocketClient *reader, LogBuffer *parent,
                                   bool privileged) {
    struct logger_entry_v4 entry;

    memset(&entry, 0, sizeof(struct logger_entry_v3));
    memset(&entry, 0, sizeof(struct logger_entry_v4));

    entry.hdr_size = sizeof(struct logger_entry_v3);
    entry.hdr_size = privileged ?
                         sizeof(struct logger_entry_v4) :
                         sizeof(struct logger_entry_v3);
    entry.lid = mLogId;
    entry.pid = mPid;
    entry.tid = mTid;
    entry.uid = mUid;
    entry.sec = mRealTime.tv_sec;
    entry.nsec = mRealTime.tv_nsec;

    struct iovec iovec[2];
    iovec[0].iov_base = &entry;
    iovec[0].iov_len = sizeof(struct logger_entry_v3);
    iovec[0].iov_len = entry.hdr_size;

    char *buffer = NULL;

+1 −1
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ public:
    uint32_t getTag(void) const;

    static const uint64_t FLUSH_ERROR;
    uint64_t flushTo(SocketClient *writer, LogBuffer *parent);
    uint64_t flushTo(SocketClient *writer, LogBuffer *parent, bool privileged);
};

#endif