(krb5_cc_move): new function.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22094 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2007-12-03 12:46:21 +00:00
parent 64cf3425d8
commit 5d119f3729

View File

@@ -1028,3 +1028,35 @@ krb5_cc_cache_match (krb5_context context,
return 0;
}
/**
* Move the content from one credential cache to another. The
* operation is an atomic switch.
*
* @param context a Keberos context
* @param from the credential cache to move the content from
* @param to the credential cache to move the content to
* @return On sucess, from is freed. On failure, error code is
* returned and from and to are both still allocated.
*
* @ingroup krb5_ccache
*/
krb5_error_code
krb5_cc_move(krb5_context context, krb5_ccache from, krb5_ccache to)
{
krb5_error_code ret;
if (strcmp(from->ops->prefix, to->ops->prefix) != 0) {
krb5_set_error_string(context, "Moving credentials between diffrent "
"types not yet supported");
return KRB5_CC_NOSUPP;
}
ret = (*to->ops->move)(context, from, to);
if (ret == 0) {
memset(from, 0, sizeof(*from));
free(from);
}
return ret;
}