/*
* prototypes.h
*
- * Missing function prototypes
+ * prototypes of libmisc functions, and private lib functions.
*
- * Juha Virtanen, <jiivee@hut.fi>; November 1995
- */
-/*
* $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 "shadowio.h"
+#include <shadow.h>
+#include <lastlog.h>
#include "defines.h"
+#include "commonio.h"
/* addgrps.c */
extern int add_groups (const char *);
/* console.c */
extern int console (const char *);
-extern int is_listed (const char *, const char *, int);
/* copydir.c */
extern int copy_tree (const char *src_root, const char *dst_root,
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);
extern char *fgetsx (char *, int, FILE *);
extern int fputsx (const char *, FILE *);
+/* 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);
+
+/* groupmem.c */
+extern struct group *__gr_dup (const struct group *grent);
+
/* hushed.c */
extern int hushed (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);
/* pwd_init.c */
extern void pwd_init (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);
+
+/* 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 (char *meth, void *arg);
+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 *);
+/* sgetgrent.c */
+extern struct group *sgetgrent (const char *buf);
+
+/* sgetpwent.c */
+extern struct passwd *sgetpwent (const char *buf);
+
+/* 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 *);
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 *);