#include <krb5.h>
int yyparse(void);
+time_t get_date_rel(char *, time_t);
time_t get_date(char *);
time_t
-get_date(char *p)
+get_date_rel(char *p, time_t nowtime)
{
struct my_timeb *now = NULL;
struct tm *tm, gmt;
if (now == NULL) {
now = &ftz;
- ftz.time = time((time_t *) 0);
+ ftz.time = nowtime;
if (! (tm = gmtime (&ftz.time)))
return -1;
}
+time_t
+get_date(char *p)
+{
+ return get_date_rel(p, time(NULL));
+}
+
+
#if defined(TEST)
/* ARGSUSED */
/* Parse a date string using getdate.y. On failure, output an error message
* and return (time_t)-1. */
static time_t
-parse_date(char *str)
+parse_date(char *str, time_t now)
{
time_t date;
- date = get_date(str);
+ date = get_date_rel(str, now);
if (date == (time_t)-1)
error(_("Invalid date specification \"%s\".\n"), str);
return date;
if (krb5_string_to_deltat(str, &delta) == 0)
return delta;
- date = parse_date(str);
+ date = parse_date(str, now);
if (date == (time_t)-1)
return date;
if (!strcmp("-expire", argv[i])) {
if (++i > argc - 2)
return -1;
- date = parse_date(argv[i]);
+ date = parse_date(argv[i], now);
if (date == (time_t)-1)
return -1;
oprinc->princ_expire_time = date;
if (!strcmp("-pwexpire", argv[i])) {
if (++i > argc - 2)
return -1;
- date = parse_date(argv[i]);
+ date = parse_date(argv[i], now);
if (date == (time_t)-1)
return -1;
oprinc->pw_expiration = date;
#endif
#endif
-extern time_t get_date(char *);
+extern time_t get_date_rel(char *, time_t);
/* Yucky global variables */
extern krb5_context context;