summaryrefslogtreecommitdiff
path: root/libbb/utmp.c
diff options
context:
space:
mode:
authorDenys Vlasenko2015-01-05 15:37:58 +0100
committerDenys Vlasenko2015-01-05 15:37:58 +0100
commitda9212667c99f2f2121747c4715d067deb7c155b (patch)
tree66a670e6d78ca899a454a42228abbbc2740fad0d /libbb/utmp.c
parent08b90a9d10f2f712c6e16c118328d85930762b92 (diff)
downloadbusybox-da9212667c99f2f2121747c4715d067deb7c155b.zip
busybox-da9212667c99f2f2121747c4715d067deb7c155b.tar.gz
libbb: code shrink by factoring out common update_utmp_DEAD_PROCESS
function old new delta update_utmp_DEAD_PROCESS - 17 +17 telnetd_main 1685 1674 -11 mark_terminated 56 45 -11 handle_sigchld 74 63 -11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb/utmp.c')
-rw-r--r--libbb/utmp.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/libbb/utmp.c b/libbb/utmp.c
index 09443fb..8ad9ba2 100644
--- a/libbb/utmp.c
+++ b/libbb/utmp.c
@@ -130,3 +130,17 @@ void FAST_FUNC update_utmp(pid_t pid, int new_type, const char *tty_name, const
updwtmp(bb_path_wtmp_file, &utent);
#endif
}
+
+/* man utmp:
+ * When init(8) finds that a process has exited, it locates its utmp entry
+ * by ut_pid, sets ut_type to DEAD_PROCESS, and clears ut_user, ut_host
+ * and ut_time with null bytes.
+ * [same applies to other processes which maintain utmp entries, like telnetd]
+ *
+ * We do not bother actually clearing fields:
+ * it might be interesting to know who was logged in and from where
+ */
+void FAST_FUNC update_utmp_DEAD_PROCESS(pid_t pid)
+{
+ update_utmp(pid, DEAD_PROCESS, NULL, NULL, NULL);
+}