diff options
Diffstat (limited to 'compat')
-rw-r--r-- | compat/getpeereid.c | 5 | ||||
-rw-r--r-- | compat/systemd.c | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/compat/getpeereid.c b/compat/getpeereid.c index c194e886..b79f420a 100644 --- a/compat/getpeereid.c +++ b/compat/getpeereid.c @@ -18,6 +18,7 @@ #include <sys/socket.h> #include <stdio.h> +#include <unistd.h> #ifdef HAVE_UCRED_H #include <ucred.h> @@ -49,6 +50,8 @@ getpeereid(int s, uid_t *uid, gid_t *gid) ucred_free(ucred); return (0); #else - return (getuid()); + *uid = geteuid(); + *gid = getegid(); + return (0); #endif } diff --git a/compat/systemd.c b/compat/systemd.c index 7317e43a..cce42ed4 100644 --- a/compat/systemd.c +++ b/compat/systemd.c @@ -21,15 +21,23 @@ #include <systemd/sd-daemon.h> +#include <string.h> + #include "tmux.h" int +systemd_activated(void) +{ + return (sd_listen_fds(0) >= 1); +} + +int systemd_create_socket(int flags, char **cause) { int fds; int fd; struct sockaddr_un sa; - int addrlen = sizeof sa; + socklen_t addrlen = sizeof sa; fds = sd_listen_fds(0); if (fds > 1) { /* too many file descriptors */ |