};
extern struct rule **rules;
-extern int nrules;
+extern size_t nrules;
extern int parse_errors;
-size_t arraylen(const char **);
+extern const char *formerpath;
-char **prepenv(struct rule *);
+struct passwd;
-int yyparse(void);
+char **prepenv(const struct rule *, const struct passwd *,
+ const struct passwd *);
#define PERMIT 1
#define DENY 2
#define NOPASS 0x1
#define KEEPENV 0x2
#define PERSIST 0x4
+#define NOLOG 0x8
+#define INSULT 0x10
+
+int shadowauth(const char *, int);
+
+#ifdef USE_TIMESTAMP
+int timestamp_open(int *, int);
+int timestamp_set(int, int);
+int timestamp_clear(void);
+#endif
+
+const char * getinsult(void);
+void authfail(int);