summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--logd/LogBuffer.h1
-rw-r--r--logd/LogStatistics.cpp17
-rw-r--r--logd/LogStatistics.h1
3 files changed, 19 insertions, 0 deletions
diff --git a/logd/LogBuffer.h b/logd/LogBuffer.h
index 7c5766052..bdb317920 100644
--- a/logd/LogBuffer.h
+++ b/logd/LogBuffer.h
@@ -79,6 +79,7 @@ public:
// helper
char *pidToName(pid_t pid) { return stats.pidToName(pid); }
+ uid_t pidToUid(pid_t pid) { return stats.pidToUid(pid); }
private:
void maybePrune(log_id_t id);
diff --git a/logd/LogStatistics.cpp b/logd/LogStatistics.cpp
index 99c376acd..82a3a904b 100644
--- a/logd/LogStatistics.cpp
+++ b/logd/LogStatistics.cpp
@@ -728,3 +728,20 @@ void LogStatistics::format(char **buf,
*buf = strdup(string.string());
}
+
+uid_t LogStatistics::pidToUid(pid_t pid) {
+ log_id_for_each(i) {
+ LidStatistics &l = id(i);
+ UidStatisticsCollection::iterator iu;
+ for (iu = l.begin(); iu != l.end(); ++iu) {
+ UidStatistics &u = *(*iu);
+ PidStatisticsCollection::iterator ip;
+ for (ip = u.begin(); ip != u.end(); ++ip) {
+ if ((*ip)->getPid() == pid) {
+ return u.getUid();
+ }
+ }
+ }
+ }
+ return getuid(); // associate this with the logger
+}
diff --git a/logd/LogStatistics.h b/logd/LogStatistics.h
index 4a5743534..12c68d5a3 100644
--- a/logd/LogStatistics.h
+++ b/logd/LogStatistics.h
@@ -172,6 +172,7 @@ public:
// helper
static char *pidToName(pid_t pid) { return PidStatistics::pidToName(pid); }
+ uid_t pidToUid(pid_t pid);
};
#endif // _LOGD_LOG_STATISTICS_H__