/*
* prototypes.h
*
- * Missing function prototypes
+ * prototypes of libmisc functions, and private lib functions.
*
- * Juha Virtanen, <jiivee@hut.fi>; November 1995
- */
-/*
- * $Id: prototypes.h,v 1.18 2005/04/06 03:01:07 kloczek Exp $
+ * $Id$
*
- * Added a macro to work around ancient (non-ANSI) compilers, just in case
- * someone ever tries to compile this with SunOS cc... --marekm
*/
#ifndef _PROTOTYPES_H
#endif
#include <pwd.h>
#include <grp.h>
+#include <shadow.h>
+#include <lastlog.h>
#include "defines.h"
+#include "commonio.h"
/* addgrps.c */
extern int add_groups (const char *);
extern void add_cons_grps (void);
/* age.c */
-#ifdef SHADOWPWD
extern void agecheck (const struct passwd *, const struct spwd *);
extern int expire (const struct passwd *, const struct spwd *);
extern int isexpired (const struct passwd *, const struct spwd *);
-#else
-extern void agecheck (const struct passwd *);
-extern int expire (const struct passwd *);
-extern int isexpired (const struct passwd *);
-#endif
/* basename() renamed to Basename() to avoid libc name space confusion */
/* basename.c */
extern char *Basename (char *str);
-/* chkshell.c */
-extern int check_shell (const char *);
-
/* chowndir.c */
extern int chown_tree (const char *, uid_t, uid_t, gid_t, gid_t);
/* console.c */
extern int console (const char *);
-extern int is_listed (const char *, const char *, int);
/* copydir.c */
-extern int copy_tree (const char *, const char *, uid_t, gid_t);
-extern int remove_tree (const char *);
+extern int copy_tree (const char *src_root, const char *dst_root,
+ long int uid, long int gid);
+extern int remove_tree (const char *root);
/* encrypt.c */
extern char *pw_encrypt (const char *, const char *);
extern void change_field (char *, size_t, const char *);
extern int valid_field (const char *, const char *);
+/* find_new_ids.c */
+extern int find_new_uid (int sys_user, uid_t *uid, uid_t const *preferred_uid);
+extern int find_new_gid (int sys_group, gid_t *gid, gid_t const *preferred_gid);
+
+/* getlong.c */
+extern int getlong(const char *numstr, long int *result);
+
/* fputsx.c */
extern char *fgetsx (char *, int, FILE *);
extern int fputsx (const char *, FILE *);
-/* grdbm.c */
-extern int gr_dbm_remove (const struct group *);
-extern int gr_dbm_update (const struct group *);
-extern int gr_dbm_present (void);
-
-/* grent.c */
-extern int putgrent (const struct group *, FILE *);
-
-/* grpack.c */
-extern int gr_pack (const struct group *, char *);
-extern int gr_unpack (char *, int, struct group *);
+/* groupio.c */
+extern void __gr_del_entry (const struct commonio_entry *ent);
+extern struct commonio_db *__gr_get_db (void);
+extern struct commonio_entry *__gr_get_head (void);
+extern void __gr_set_changed (void);
-#ifdef SHADOWGRP
-/* gsdbm.c */
-extern int sg_dbm_remove (const char *);
-extern int sg_dbm_update (const struct sgrp *);
-extern int sg_dbm_present (void);
-
-/* gspack.c */
-extern int sgr_pack (const struct sgrp *, char *);
-extern int sgr_unpack (char *, int, struct sgrp *);
-#endif
+/* groupmem.c */
+extern struct group *__gr_dup (const struct group *grent);
/* hushed.c */
extern int hushed (const struct passwd *);
+/* audit_help.c */
+#ifdef WITH_AUDIT
+extern int audit_fd;
+extern void audit_help_open (void);
+extern void audit_logger (int type, const char *pgname, const char *op,
+ const char *name, unsigned int id, int result);
+#endif
+
/* limits.c */
extern void setup_limits (const struct passwd *);
extern int is_on_list (char *const *, const char *);
extern char **comma_to_list (const char *);
-/* login.c */
+/* log.c */
+extern void dolastlog (struct lastlog *ll,
+ const struct passwd *pw,
+ const char *line,
+ const char *host);
+
+/* login_nopam.c */
+extern int login_access (const char *user, const char *from);
+
+/* loginprompt.c */
extern void login_prompt (const char *, char *, int);
/* mail.c */
extern int obscure (const char *, const char *, const struct passwd *);
/* pam_pass.c */
-extern int do_pam_passwd (const char *, int, int);
+extern void do_pam_passwd (const char *, int, int);
/* port.c */
extern int isttytime (const char *, const char *, time_t);
/* pwd2spwd.c */
-#ifdef SHADOWPWD
extern struct spwd *pwd_to_spwd (const struct passwd *);
-#endif
/* pwdcheck.c */
extern void passwd_check (const char *, const char *, const char *);
/* pwd_init.c */
extern void pwd_init (void);
-/* pwdbm.c */
-extern int pw_dbm_remove (const struct passwd *);
-extern int pw_dbm_update (const struct passwd *);
-extern int pw_dbm_present (void);
+/* pwio.c */
+extern void __pw_del_entry (const struct commonio_entry *ent);
+extern struct commonio_db *__pw_get_db (void);
+extern struct commonio_entry *__pw_get_head (void);
-/* pwpack.c */
-extern int pw_pack (const struct passwd *, char *);
-extern int pw_unpack (char *, int, struct passwd *);
+/* pwmem.c */
+extern struct passwd *__pw_dup (const struct passwd *pwent);
/* rlogin.c */
extern int do_rlogin (const char *, char *, int, char *, int);
/* salt.c */
-extern char *crypt_make_salt (void);
+extern char *crypt_make_salt (const char *meth, void *arg);
/* setugid.c */
extern int setup_groups (const struct passwd *);
/* setupenv.c */
extern void setup_env (struct passwd *);
-/* shell.c */
-extern void shell (const char *, const char *);
+/* sgetgrent.c */
+extern struct group *sgetgrent (const char *buf);
-#ifdef SHADOWPWD
-/* spdbm.c */
-extern int sp_dbm_remove (const char *);
-extern int sp_dbm_update (const struct spwd *);
-extern int sp_dbm_present (void);
+/* sgetpwent.c */
+extern struct passwd *sgetpwent (const char *buf);
-/* sppack.c */
-extern int spw_pack (const struct spwd *, char *);
-extern int spw_unpack (char *, int, struct spwd *);
-#endif
+/* sgroupio.c */
+extern void __sgr_del_entry (const struct commonio_entry *ent);
+extern struct sgrp *__sgr_dup (const struct sgrp *sgent);
+extern struct commonio_entry *__sgr_get_head (void);
+extern void __sgr_set_changed (void);
+
+/* shadowio.c */
+extern struct commonio_entry *__spw_get_head (void);
+extern void __spw_del_entry (const struct commonio_entry *ent);
+
+/* shadowmem.c */
+extern struct spwd *__spw_dup (const struct spwd *spent);
+
+/* shell.c */
+extern int shell (const char *, const char *, char *const *);
/* strtoday.c */
extern long strtoday (const char *);
/* suauth.c */
-extern int check_su_auth (const char *, const char *);
+extern int check_su_auth (const char *actual_id, const char *wanted_id);
/* sulog.c */
extern void sulog (const char *, int, const char *, const char *);
extern char *xmalloc (size_t);
extern char *xstrdup (const char *);
+/* xgetpwnam.c */
+extern struct passwd *xgetpwnam (const char *);
+/* xgetpwuid.c */
+extern struct passwd *xgetpwuid (uid_t);
+/* xgetgrnam.c */
+extern struct group *xgetgrnam (const char *);
+/* xgetgrgid.c */
+extern struct group *xgetgrgid (gid_t);
+/* xgetspnam.c */
+extern struct spwd *xgetspnam(const char *);
+
+/* yesno.c */
+extern int yes_or_no (int read_only);
+
#endif /* _PROTOTYPES_H */