diff options
author | Mike Frysinger | 2009-07-09 01:33:20 -0400 |
---|---|---|
committer | Mike Frysinger | 2009-07-09 01:35:29 -0400 |
commit | 52a426744e1d58229397d2935e62a1f3e374619c (patch) | |
tree | d6ea3c2a36abdf25fbde3fe60762d3d85eb26be7 | |
parent | 4c8a721b45ed1a9bfd83ec87e26a8c60550a15e7 (diff) | |
download | busybox-52a426744e1d58229397d2935e62a1f3e374619c.zip busybox-52a426744e1d58229397d2935e62a1f3e374619c.tar.gz |
restore shadow.h independence
Commit ee5dce336597 made busybox require shadow.h from the toolchain even
if the config opted for the internal busybox implementation. This makes
building with toolchains that lack shadow support impossible. Since the
merge only saved us from duplicating a simple structure (whose ABI isn't
going to ever change), restore the logic for complete busybox shadow
independence by reverting that previous commit slightly.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r-- | include/libbb.h | 7 | ||||
-rw-r--r-- | include/shadow_.h | 16 |
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 |