summaryrefslogtreecommitdiffstats
path: root/src/kim/lib/kim_credential.c
diff options
context:
space:
mode:
authorAlexandra Ellwood <lxs@mit.edu>2008-09-23 21:46:12 +0000
committerAlexandra Ellwood <lxs@mit.edu>2008-09-23 21:46:12 +0000
commitef05efb0c1cfb734437b55ec5f8390c2fb19a5ed (patch)
treef7844f845697f2d5468ea82c8b1f1af929f84ca9 /src/kim/lib/kim_credential.c
parentb756a048a181f266a22d1bcf043e10369d39cd78 (diff)
downloadkrb5-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.c32
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);