diff options
author | nicm <nicm> | 2022-03-08 11:28:40 +0000 |
---|---|---|
committer | nicm <nicm> | 2022-03-08 11:28:40 +0000 |
commit | 98cd8e4cad3afbc542de665e9d025d12b560bc6b (patch) | |
tree | 89c183d5ed03debead753b40899dd7f9186e6cea /proc.c | |
parent | a731b1a9162bfa8157c474d411a4d0d6f131439d (diff) | |
download | rtmux-98cd8e4cad3afbc542de665e9d025d12b560bc6b.tar.gz rtmux-98cd8e4cad3afbc542de665e9d025d12b560bc6b.tar.bz2 rtmux-98cd8e4cad3afbc542de665e9d025d12b560bc6b.zip |
Add formats for client and server UID and user (for multiuser setups).
Diffstat (limited to 'proc.c')
-rw-r--r-- | proc.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -55,6 +55,7 @@ struct tmuxpeer { struct imsgbuf ibuf; struct event event; + uid_t uid; int flags; #define PEER_BAD 0x1 @@ -296,6 +297,7 @@ proc_add_peer(struct tmuxproc *tp, int fd, void (*dispatchcb)(struct imsg *, void *), void *arg) { struct tmuxpeer *peer; + gid_t gid; peer = xcalloc(1, sizeof *peer); peer->parent = tp; @@ -306,6 +308,9 @@ proc_add_peer(struct tmuxproc *tp, int fd, imsg_init(&peer->ibuf, fd); event_set(&peer->event, fd, EV_READ, proc_event_cb, peer); + if (getpeereid(fd, &peer->uid, &gid) != 0) + peer->uid = (uid_t)-1; + log_debug("add peer %p: %d (%p)", peer, fd, arg); TAILQ_INSERT_TAIL(&tp->peers, peer, entry); @@ -361,3 +366,9 @@ proc_fork_and_daemon(int *fd) return (pid); } } + +uid_t +proc_get_peer_uid(struct tmuxpeer *peer) +{ + return (peer->uid); +} |