summaryrefslogtreecommitdiff
path: root/sysutils/screen/files/patch-misc.c
diff options
context:
space:
mode:
authorRodrigo Osorio <rodrigo@FreeBSD.org>2023-08-15 13:19:35 +0200
committerRodrigo Osorio <rodrigo@FreeBSD.org>2023-08-16 15:52:05 +0200
commit7418bfa0e65838e7f94bd82d1e02c5aac79b0555 (patch)
tree135b1ec41e586010632885bdf7cf6a0b4ffc6670 /sysutils/screen/files/patch-misc.c
parentx11/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.c31
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;
++}