diff options
author | Rodrigo Osorio <rodrigo@FreeBSD.org> | 2023-08-15 13:19:35 +0200 |
---|---|---|
committer | Rodrigo Osorio <rodrigo@FreeBSD.org> | 2023-08-16 15:52:05 +0200 |
commit | 7418bfa0e65838e7f94bd82d1e02c5aac79b0555 (patch) | |
tree | 135b1ec41e586010632885bdf7cf6a0b4ffc6670 /sysutils/screen/files/patch-misc.c | |
parent | x11/plasma-wayland-protocols: remove run depend on self (diff) |
sysutils/screen: Add session creation time when list active sessions
Reimplement Debian patches to display screen session creation time and
sort the list of sessions by date.
Output example for 'screen -ls' command
---------------------------------------
There is a screen on:
14059.pts-7.1302amd64-head (08/15/23 10:02:52) (Attached)
1 Socket in /tmp/screens/S-root.
Reviewed by: cy
Differential Revision: https://reviews.freebsd.org/D41469
Diffstat (limited to 'sysutils/screen/files/patch-misc.c')
-rw-r--r-- | sysutils/screen/files/patch-misc.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/sysutils/screen/files/patch-misc.c b/sysutils/screen/files/patch-misc.c new file mode 100644 index 000000000000..1364b230d55a --- /dev/null +++ b/sysutils/screen/files/patch-misc.c @@ -0,0 +1,31 @@ +--- misc.c.orig 2022-01-28 14:06:02 UTC ++++ misc.c +@@ -28,8 +28,10 @@ + + #include <poll.h> + #include <sys/types.h> ++#include <sys/user.h> + #include <sys/stat.h> /* mkdir() declaration */ + #include <signal.h> ++#include <libutil.h> + + #include "config.h" + #include "screen.h" +@@ -796,3 +798,17 @@ + } + + #endif ++ ++time_t ++SessionCreationTime(fifo) ++const char *fifo; ++{ ++ int pid = atoi(fifo); ++ if (pid <= 0) return 0; ++ ++ struct kinfo_proc * kip = kinfo_getproc(pid); ++ if (kip == 0) return 0; ++ time_t start = kip->ki_start.tv_sec; ++ free (kip); ++ return start; ++} |