summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libbb.h7
-rw-r--r--include/shadow_.h16
2 files changed, 18 insertions, 5 deletions
diff --git a/include/libbb.h b/include/libbb.h
index 6f4c547..422670f 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -76,7 +76,12 @@
#include <pwd.h>
#include <grp.h>
#if ENABLE_FEATURE_SHADOWPASSWDS
-# include <shadow.h>
+# if !ENABLE_USE_BB_SHADOW
+/* If using busybox's shadow implementation, do not include the shadow.h
+ * header as the toolchain may not provide it at all.
+ */
+# include <shadow.h>
+# endif
#endif
/* Some libc's forget to declare these, do it ourself */
diff --git a/include/shadow_.h b/include/shadow_.h
index 02d3bf9..98bd45d 100644
--- a/include/shadow_.h
+++ b/include/shadow_.h
@@ -24,10 +24,18 @@
PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
-/* This file is #included after #include <shadow.h>
- * We will use libc-defined structures, but will #define function names
- * so that function calls are directed to bb_internal_XXX replacements
- */
+/* Structure of the password file */
+struct spwd {
+ char *sp_namp; /* Login name */
+ char *sp_pwdp; /* Encrypted password */
+ long sp_lstchg; /* Date of last change */
+ long sp_min; /* Minimum number of days between changes */
+ long sp_max; /* Maximum number of days between changes */
+ long sp_warn; /* Number of days to warn user to change the password */
+ long sp_inact; /* Number of days the account may be inactive */
+ long sp_expire; /* Number of days since 1970-01-01 until account expires */
+ unsigned long sp_flag; /* Reserved */
+};
/* Paths to the user database files */
#ifndef _PATH_SHADOW