diff options
author | David Herrmann <dh.herrmann@gmail.com> | 2015-01-17 14:32:58 +0100 |
---|---|---|
committer | David Herrmann <dh.herrmann@gmail.com> | 2015-01-17 14:32:58 +0100 |
commit | d3394ff47c6c60b6efb55be59e9e647ab82a857a (patch) | |
tree | c74d7ba062b39060cb62d167affad81532407da4 | |
parent | a8a1a43f482af480c375a97921df6b42452c7092 (diff) |
bus-proxy: set custom thread names
Set thread-names to "p$PIDu$UID" and suffix with '*' if truncated. This
helps debugging bus-proxy issues if we want to figure out which
connections are currently open.
-rw-r--r-- | src/bus-proxyd/bus-proxyd.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/bus-proxyd/bus-proxyd.c b/src/bus-proxyd/bus-proxyd.c index 702f021a6b..15a79fc427 100644 --- a/src/bus-proxyd/bus-proxyd.c +++ b/src/bus-proxyd/bus-proxyd.c @@ -30,6 +30,7 @@ #include <string.h> #include <errno.h> #include <sys/poll.h> +#include <sys/prctl.h> #include <stddef.h> #include <getopt.h> #include <pthread.h> @@ -91,12 +92,19 @@ static int client_context_new(ClientContext **out, int fd) { static void *run_client(void *userdata) { _cleanup_(client_context_freep) ClientContext *c = userdata; _cleanup_(proxy_freep) Proxy *p = NULL; + char comm[16]; int r; r = proxy_new(&p, c->fd, c->fd, arg_address); if (r < 0) goto exit; + /* set comm to "p$PIDu$UID" and suffix with '*' if truncated */ + r = snprintf(comm, sizeof(comm), "p" PID_FMT "u" UID_FMT, p->local_creds.pid, p->local_creds.uid); + if (r >= (ssize_t)sizeof(comm)) + comm[sizeof(comm) - 2] = '*'; + (void) prctl(PR_SET_NAME, comm); + r = proxy_load_policy(p, arg_configuration); if (r < 0) goto exit; |