diff options
author | Alexandra Ellwood <lxs@mit.edu> | 2008-09-23 21:46:12 +0000 |
---|---|---|
committer | Alexandra Ellwood <lxs@mit.edu> | 2008-09-23 21:46:12 +0000 |
commit | ef05efb0c1cfb734437b55ec5f8390c2fb19a5ed (patch) | |
tree | f7844f845697f2d5468ea82c8b1f1af929f84ca9 /src/kim/lib/kim_credential.c | |
parent | b756a048a181f266a22d1bcf043e10369d39cd78 (diff) | |
download | krb5-ef05efb0c1cfb734437b55ec5f8390c2fb19a5ed.tar.gz krb5-ef05efb0c1cfb734437b55ec5f8390c2fb19a5ed.tar.xz krb5-ef05efb0c1cfb734437b55ec5f8390c2fb19a5ed.zip |
Renamed error handling files to reflect what they do now.
Moved GUI code into OS-specific directory.
Fixed bugs in cache collection iterator routines where it was mishandling
the magic empty ccache created when the cache collection is empty.
ticket: 6055
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20747 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kim/lib/kim_credential.c')
-rw-r--r-- | src/kim/lib/kim_credential.c | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/src/kim/lib/kim_credential.c b/src/kim/lib/kim_credential.c index f81b50f12..36c6ca1b6 100644 --- a/src/kim/lib/kim_credential.c +++ b/src/kim/lib/kim_credential.c @@ -281,12 +281,13 @@ kim_error kim_credential_create_new (kim_credential *out_credential, kim_options_free_init_cred_options (credential->context, &init_cred_options); } + if (credential && principal) { krb5_free_principal (credential->context, principal); } + if (!err) { *out_credential = credential; credential = NULL; } - if (principal ) { krb5_free_principal (credential->context, principal); } if (!in_options) { kim_options_free (&options); } kim_string_free (&service); kim_credential_free (&credential); @@ -781,7 +782,8 @@ kim_error kim_credential_get_start_time (kim_credential in_credential, { kim_error err = KIM_NO_ERROR; - if (!err && !in_credential) { err = check_error (KIM_NULL_PARAMETER_ERR); } + if (!err && !in_credential ) { err = check_error (KIM_NULL_PARAMETER_ERR); } + if (!err && !out_start_time) { err = check_error (KIM_NULL_PARAMETER_ERR); } if (!err) { *out_start_time = (in_credential->creds->times.starttime ? @@ -815,10 +817,32 @@ kim_error kim_credential_get_renewal_expiration_time (kim_credential in_credent { kim_error err = KIM_NO_ERROR; - if (!err && !in_credential) { err = check_error (KIM_NULL_PARAMETER_ERR); } + if (!err && !in_credential ) { err = check_error (KIM_NULL_PARAMETER_ERR); } + if (!err && !out_renewal_expiration_time) { err = check_error (KIM_NULL_PARAMETER_ERR); } + + if (!err) { + if (in_credential->creds->ticket_flags & TKT_FLG_RENEWABLE) { + *out_renewal_expiration_time = in_credential->creds->times.renew_till; + } else { + *out_renewal_expiration_time = 0; + } + } + + return check_error (err); +} + +/* ------------------------------------------------------------------------ */ + +kim_error kim_credential_get_krb5_ticket_flags (kim_credential in_credential, + krb5_flags *out_ticket_flags) +{ + kim_error err = KIM_NO_ERROR; + + if (!err && !in_credential ) { err = check_error (KIM_NULL_PARAMETER_ERR); } + if (!err && !out_ticket_flags) { err = check_error (KIM_NULL_PARAMETER_ERR); } if (!err) { - *out_renewal_expiration_time = in_credential->creds->times.renew_till; + *out_ticket_flags = in_credential->creds->ticket_flags; } return check_error (err); |