struct passwd *pw;
(void)login_style;
+
+#ifdef PERSIST_TIMESTAMP
+ int fd = -1;
+ int valid;
+ if (persist)
+ fd = persist_open(&valid, 5 * 60);
+ if (fd != -1 && valid)
+ goto good;
+#else
(void)persist;
+#endif
if (!(pw = getpwnam(myname)))
err(1, "getpwnam");
errx(1, "Authorization failed");
}
explicit_bzero(rbuf, sizeof(rbuf));
+#ifdef PERSIST_TIMESTAMP
+good:
+ if (fd != -1) {
+ persist_set(fd, 5 * 60);
+ close(fd);
+ }
+#endif
}
#endif /* HAVE_BSD_AUTH_H */
if (i != -1)
ioctl(i, TIOCCLRVERAUTH);
exit(i == -1);
+#elif PERSIST_TIMESTAMP
+ exit(persist_clear() != 0);
#endif
case 'u':
if (parseuid(optarg, &target) != 0)