summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2021-04-19 11:26:23 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2021-04-19 11:26:23 +0000
commit9969d7437fa6786782e6c780fbadd6561220ccfe (patch)
tree0be0d73689929500cab25d32695d6074d41c9c90 /src
parenteaeee8195f3347b3fa762a7ddbb0c7eb0ef15133 (diff)
downloads6-linux-init-9969d7437fa6786782e6c780fbadd6561220ccfe.tar.xz
Clean up the wtmp mess
Diffstat (limited to 'src')
-rw-r--r--src/init/s6-linux-init-maker.c17
-rw-r--r--src/shutdown/s6-linux-init-hpr.c6
2 files changed, 10 insertions, 13 deletions
diff --git a/src/init/s6-linux-init-maker.c b/src/init/s6-linux-init-maker.c
index 6d86ff9..c505e04 100644
--- a/src/init/s6-linux-init-maker.c
+++ b/src/init/s6-linux-init-maker.c
@@ -499,7 +499,7 @@ static inline void auto_basedir (char const *base, char const *dir, uid_t uid, g
}
}
-static int utmpd_script (buffer *b, char const *uw)
+static int utmpd_script (buffer *b, char const *aux)
{
size_t sabase = satmp.len ;
if (!put_shebang(b)
@@ -512,12 +512,9 @@ static int utmpd_script (buffer *b, char const *uw)
if (buffer_puts(b, "\n"
EXECLINE_EXTBINPREFIX "cd " S6_LINUX_INIT_TMPFS "/" UTMPS_DIR "\n"
EXECLINE_EXTBINPREFIX "fdmove 1 3\n"
- S6_EXTBINPREFIX "s6-ipcserver -1 -c 1000 -- ") < 0) return 0 ;
- if (buffer_puts(b, uw[0] == 'u' ? UTMPS_UTMPD_PATH : UTMPS_WTMPD_PATH) < 0
- || buffer_puts(b, "\n"
- UTMPS_EXTBINPREFIX "utmps-") < 0
- || buffer_puts(b, uw) < 0
- || buffer_puts(b, "tmpd\n") < 0) return 0 ;
+ S6_EXTBINPREFIX "s6-ipcserver -1 -c 1000 -- " UTMPS_UTMPD_PATH "\n"
+ UTMPS_EXTBINPREFIX "utmps-utmpd") < 0) return 0 ;
+ (void)aux ;
return 1 ;
err:
@@ -529,17 +526,13 @@ static inline void make_utmps (char const *base)
{
auto_dir(base, "run-image/" SCANDIR "/utmpd", 0, 0, 0755) ;
auto_file(base, "run-image/" SCANDIR "/utmpd/notification-fd", "3\n", 2) ;
- auto_script(base, "run-image/" SCANDIR "/utmpd/run", &utmpd_script, "u") ;
- auto_dir(base, "run-image/" SCANDIR "/wtmpd", 0, 0, 0755) ;
- auto_file(base, "run-image/" SCANDIR "/wtmpd/notification-fd", "3\n", 2) ;
- auto_script(base, "run-image/" SCANDIR "/wtmpd/run", &utmpd_script, "w") ;
+ auto_script(base, "run-image/" SCANDIR "/utmpd/run", &utmpd_script, 0) ;
{
uid_t uid ;
gid_t gid ;
getug(base, utmp_user, &uid, &gid) ;
auto_dir(base, "run-image/" UTMPS_DIR, uid, gid, 0755) ;
auto_basedir(base, "run-image/" S6_LINUX_INIT_UTMPD_PATH, uid, gid, 0755) ;
- auto_basedir(base, "run-image/" S6_LINUX_INIT_WTMPD_PATH, uid, gid, 0755) ;
}
}
diff --git a/src/shutdown/s6-linux-init-hpr.c b/src/shutdown/s6-linux-init-hpr.c
index 8ebe2d5..a874ac3 100644
--- a/src/shutdown/s6-linux-init-hpr.c
+++ b/src/shutdown/s6-linux-init-hpr.c
@@ -26,7 +26,11 @@
#endif
#ifndef _PATH_WTMP
-#define _PATH_WTMP "/dev/null/wtmp"
+# ifdef WTMPX_FILE
+# define _PATH_WTMP WTMPX_FILE
+# else
+# define _PATH_WTMP "/var/log/wtmp"
+# endif
#endif
#define USAGE "s6-linux-init-hpr [ -h | -p | -r ] [ -n ] [ -d | -w ] [ -W ] [ -f ] [ -i ]"