summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/kdc/configure.in1
-rw-r--r--src/kdc/kerberos_v4.c32
2 files changed, 32 insertions, 1 deletions
diff --git a/src/kdc/configure.in b/src/kdc/configure.in
index 1793b21e8..dd156cd34 100644
--- a/src/kdc/configure.in
+++ b/src/kdc/configure.in
@@ -1,4 +1,5 @@
AC_INIT(main.c)
+AC_STRUCT_TM
AC_HAVE_LIBRARY(socket)
AC_HAVE_LIBRARY(nsl)
ET_RULES
diff --git a/src/kdc/kerberos_v4.c b/src/kdc/kerberos_v4.c
index 7092db265..1155c2c45 100644
--- a/src/kdc/kerberos_v4.c
+++ b/src/kdc/kerberos_v4.c
@@ -1090,6 +1090,36 @@ static void check_db_age()
}
#endif /* BACKWARD_COMPAT */
+/*
+ * Given a pointer to a long containing the number of seconds
+ * since the beginning of time (midnight 1 Jan 1970 GMT), return
+ * a string containing the local time in the form:
+ *
+ * "25-Jan-88 10:17:56"
+ */
+
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#else
+#include <time.h>
+#endif
+
+static char *krb4_stime(t)
+ long *t;
+{
+ static char st[40];
+ static long adjusted_time;
+ struct tm *tm;
+ char *month_sname();
+
+ adjusted_time = *t /* - CONVERT_TIME_EPOCH */;
+ tm = localtime(&adjusted_time);
+ (void) sprintf(st,"%2d-%s-%02d %02d:%02d:%02d",tm->tm_mday,
+ month_sname(tm->tm_mon + 1),tm->tm_year,
+ tm->tm_hour, tm->tm_min, tm->tm_sec);
+ return st;
+}
+
int check_princ(p_name, instance, lifetime, p)
char *p_name;
char *instance;
@@ -1149,7 +1179,7 @@ int check_princ(p_name, instance, lifetime, p)
/* service did expire, log it */
lt = klog(L_ERR_SEXP,
"EXPIRED \"%s\" \"%s\" %s", (int) p->name, (int) p->instance,
- (int) stime(&(p->exp_date)), 0);
+ (int) krb4_stime(&(p->exp_date)), 0);
return KERB_ERR_NAME_EXP;
}
/* ok is zero */