Don't enable this unless you have a really good reason to clean
things up manually.
+config FEATURE_UTMP
+ bool "Support utmp file"
+ default y
+ help
+ The file /var/run/utmp is used to track who is currently logged in.
+ With this option on, certain applets (getty, login, telnetd etc)
+ will create and delete entries there.
+ "who" applet requires this option.
+
config FEATURE_WTMP
bool "Support wtmp file"
default y
- select FEATURE_UTMP
+ depends on FEATURE_UTMP
help
The file /var/run/wtmp is used to track when users have logged into
and logged out of the system.
will append new entries there.
"last" applet requires this option.
-config FEATURE_UTMP
- bool "Support utmp file"
- default y
- help
- The file /var/run/utmp is used to track who is currently logged in.
- With this option on, certain applets (getty, login, telnetd etc)
- will create and delete entries there.
- "who" applet requires this option.
-
config FEATURE_PIDFILE
bool "Support writing pidfiles"
default y
/* BB_AUDIT SUSv3 _NOT_ compliant -- missing options -b, -d, -l, -m, -p, -q, -r, -s, -t, -T, -u; Missing argument 'file'. */
#include "libbb.h"
-#include <utmp.h>
static void idle_string(char *str6, time_t t)
{
# include <selinux/flask.h>
# include <selinux/av_permissions.h>
#endif
+#if ENABLE_FEATURE_UTMP
+# include <utmp.h>
+#endif
#if ENABLE_LOCALE_SUPPORT
# include <locale.h>
#else
#if ENABLE_FEATURE_WTMP
#include <sys/utsname.h>
-#include <utmp.h>
static void write_wtmp(void)
{
#ifdef __linux__
#include <linux/vt.h>
#endif
-#if ENABLE_FEATURE_UTMP
-# include <utmp.h> /* DEAD_PROCESS */
-#endif
#include "reboot.h" /* reboot() constants */
/* Used only for sanitizing purposes in set_sane_term() below. On systems where
* and it will end up in bss */
const int const_int_0 = 0;
-#include <utmp.h>
+#if ENABLE_FEATURE_WTMP
/* This is usually something like "/var/adm/wtmp" or "/var/log/wtmp" */
const char bb_path_wtmp_file[] ALIGN1 =
-#if defined _PATH_WTMP
+# if defined _PATH_WTMP
_PATH_WTMP;
-#elif defined WTMP_FILE
+# elif defined WTMP_FILE
WTMP_FILE;
-#else
-#error unknown path to wtmp file
+# else
+# error unknown path to wtmp file
+# endif
#endif
/* We use it for "global" data via *(struct global*)&bb_common_bufsiz1.
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
#include "libbb.h"
-#include <utmp.h>
static void touch(const char *filename)
{
free(cmd);
}
-static void passwd_wrapper(const char *login) NORETURN;
+static void passwd_wrapper(const char *login_name) NORETURN;
-static void passwd_wrapper(const char *login)
+static void passwd_wrapper(const char *login_name)
{
- BB_EXECLP("passwd", "passwd", login, NULL);
+ BB_EXECLP("passwd", "passwd", login_name, NULL);
bb_error_msg_and_die("can't execute passwd, you must set password manually");
}
#include "libbb.h"
#include <syslog.h>
-#if ENABLE_FEATURE_UTMP
-# include <utmp.h> /* LOGIN_PROCESS */
-#endif
#ifndef IUCLC
# define IUCLC 0
#endif
*/
#include "libbb.h"
#include <syslog.h>
-#if ENABLE_FEATURE_UTMP
-# include <utmp.h> /* USER_PROCESS */
-#endif
#include <sys/resource.h>
#if ENABLE_SELINUX
*/
#include "libbb.h"
-#include <utmp.h>
/* NB: ut_name and ut_user are the same field, use only one name (ut_user)
* to reduce confusion */
*/
#include "libbb.h"
-#include <utmp.h>
/* NB: ut_name and ut_user are the same field, use only one name (ut_user)
* to reduce confusion */
* initially busyboxified by Bernhard Reutner-Fischer
*/
#include "libbb.h"
-#include <utmp.h>
int runlevel_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int runlevel_main(int argc UNUSED_PARAM, char **argv)
*/
#include "libbb.h"
-#include <utmp.h>
int wall_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int wall_main(int argc UNUSED_PARAM, char **argv)
#endif
#include <arpa/telnet.h>
-#if ENABLE_FEATURE_UTMP
-# include <utmp.h> /* LOGIN_PROCESS */
-#endif
-
struct tsession {
struct tsession *next;
* Code for dealing with input/output redirection.
*/
+#undef EMPTY
+#undef CLOSED
#define EMPTY -2 /* marks an unused slot in redirtab */
#define CLOSED -3 /* marks a slot of previously-closed fd */