summaryrefslogtreecommitdiffstats
path: root/src/slave
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2010-04-23 01:10:20 +0000
committerTom Yu <tlyu@mit.edu>2010-04-23 01:10:20 +0000
commit33fcef6a991d5697a9e2fa0c52d30349c1e88789 (patch)
tree2725b67dd09c17f99059d4ac172c1c06e13d1edd /src/slave
parentae32c239988996a4cf3529b4d63cf68de739a496 (diff)
downloadkrb5-33fcef6a991d5697a9e2fa0c52d30349c1e88789.tar.gz
krb5-33fcef6a991d5697a9e2fa0c52d30349c1e88789.tar.xz
krb5-33fcef6a991d5697a9e2fa0c52d30349c1e88789.zip
Adapted patch from Jason Rogers. It wasn't complete, so this commit
fixes the other instances of the 64-bit problem. Also fix krb5_deltat_to_str(), which would previously always return an empty string. ticket: 6698 target_version: 1.8.2 tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23928 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/slave')
-rw-r--r--src/slave/kproplog.c37
1 files changed, 28 insertions, 9 deletions
diff --git a/src/slave/kproplog.c b/src/slave/kproplog.c
index 0134631b0..0af30d92c 100644
--- a/src/slave/kproplog.c
+++ b/src/slave/kproplog.c
@@ -74,20 +74,40 @@ print_flags(unsigned int flags)
}
}
+/* ctime() for uint32_t* */
+static char *
+ctime_uint32(uint32_t *time32)
+{
+ time_t tmp;
+ tmp = *time32;
+ return ctime(&tmp);
+}
+
/*
* Display time information.
*/
static void
-print_time(unsigned int *timep)
+print_time(uint32_t *timep)
{
if (*timep == 0L)
printf("\t\t\tNone\n");
else {
- time_t ltime = *timep;
- printf("\t\t\t%s", ctime(&ltime));
+ printf("\t\t\t%s", ctime_uint32(timep));
}
}
+static void
+print_deltat(uint32_t *deltat)
+{
+ krb5_error_code ret;
+ static char buf[30];
+ ret = krb5_deltat_to_string(*deltat, buf, sizeof(buf));
+ if (ret)
+ printf("\t\t\t(error)\n");
+ else
+ printf("\t\t\t%s\n", buf);
+}
+
/*
* Display string in hex primitive.
*/
@@ -251,13 +271,13 @@ print_attr(kdbe_val_t *val, int vverbose)
case AT_MAX_LIFE:
(void) printf(_("\t\tMaximum ticket life\n"));
if (vverbose) {
- print_time(&val->kdbe_val_t_u.av_max_life);
+ print_deltat(&val->kdbe_val_t_u.av_max_life);
}
break;
case AT_MAX_RENEW_LIFE:
(void) printf(_("\t\tMaximum renewable life\n"));
if (vverbose) {
- print_time(&val->kdbe_val_t_u.av_max_renew_life);
+ print_deltat(&val->kdbe_val_t_u.av_max_renew_life);
}
break;
case AT_EXP:
@@ -447,7 +467,7 @@ print_update(kdb_hlog_t *ulog, uint32_t entry, unsigned int verbose)
(void) printf(_("\tUpdate time stamp : None\n"));
else
(void) printf(_("\tUpdate time stamp : %s"),
- ctime((time_t *)&(indx_log->kdb_time.seconds)));
+ ctime_uint32(&indx_log->kdb_time.seconds));
(void) printf(_("\tAttributes changed : %d\n"),
upd.kdb_update.kdbe_t_len);
@@ -581,12 +601,11 @@ main(int argc, char **argv)
(void) printf(_("\tFirst time stamp : None\n"));
else {
(void) printf(_("\tFirst time stamp : %s"),
- ctime((time_t *)
- &(ulog->kdb_first_time.seconds)));
+ ctime_uint32(&ulog->kdb_first_time.seconds));
}
(void) printf(_("\tLast time stamp : %s\n"),
- ctime((time_t *)&(ulog->kdb_last_time.seconds)));
+ ctime_uint32(&ulog->kdb_last_time.seconds));
}
if ((!headeronly) && ulog->kdb_num) {