Runtime detection of working UTMP/WTMP support in system

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2021-02-14 04:17:15 +01:00
parent 87f6769c51
commit d9b705ab98
2 changed files with 12 additions and 0 deletions
+11
View File
@@ -30,6 +30,7 @@
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <utmp.h>
#include <sys/sysinfo.h> /* sysinfo() */
#include <lite/lite.h> /* strlcat() */
#include "util.h"
@@ -75,6 +76,16 @@ int echo(char *file, int append, char *fmt, ...)
return 0;
}
/*
* musl libc default to /dev/null/utmp and /dev/null/wtmp, respectively.
* See https://www.openwall.com/lists/musl/2012/03/04/4 for reasoning.
* Also, there's no __MUSL__, so we cannot make a libc-specific #ifdef
*/
int has_utmp(void)
{
return strncmp(_PATH_UTMP, "/dev/null", 9);
}
int strtobytes(char *arg)
{
int mod = 0, bytes;
+1
View File
@@ -40,6 +40,7 @@ extern char *prognm;
char *progname (char *arg0);
int echo (char *file, int append, char *fmt, ...);
int has_utmp (void);
int strtobytes (char *arg);
void do_sleep (unsigned int sec);