diff --git a/lib/gssapi/Makefile.am b/lib/gssapi/Makefile.am index 7f668e091..8c61450ca 100644 --- a/lib/gssapi/Makefile.am +++ b/lib/gssapi/Makefile.am @@ -99,6 +99,7 @@ mechsrc = \ mech/gss_decapsulate_token.c \ mech/gss_delete_name_attribute.c \ mech/gss_delete_sec_context.c \ + mech/gss_destroy_cred.c \ mech/gss_display_name.c \ mech/gss_display_name_ext.c \ mech/gss_display_status.c \ diff --git a/lib/gssapi/NTMakefile b/lib/gssapi/NTMakefile index b5b4c3f54..0a2bab4af 100644 --- a/lib/gssapi/NTMakefile +++ b/lib/gssapi/NTMakefile @@ -116,6 +116,7 @@ mechsrc = \ mech/gss_decapsulate_token.c \ mech/gss_delete_name_attribute.c \ mech/gss_delete_sec_context.c \ + mech/gss_destroy_cred.c \ mech/gss_display_name.c \ mech/gss_display_name_ext.c \ mech/gss_display_status.c \ @@ -351,6 +352,7 @@ libgssapi_OBJs = \ $(OBJ)\mech/gss_decapsulate_token.obj \ $(OBJ)\mech/gss_delete_name_attribute.obj \ $(OBJ)\mech/gss_delete_sec_context.obj \ + $(OBJ)\mech/gss_destroy_cred.obj \ $(OBJ)\mech/gss_display_name.obj \ $(OBJ)\mech/gss_display_name_ext.obj \ $(OBJ)\mech/gss_display_status.obj \ diff --git a/lib/gssapi/gssapi/gssapi.h b/lib/gssapi/gssapi/gssapi.h index 05fd5977b..4f3777228 100644 --- a/lib/gssapi/gssapi/gssapi.h +++ b/lib/gssapi/gssapi/gssapi.h @@ -1208,6 +1208,10 @@ gss_release_cred_by_mech( GSSAPI_LIB_FUNCTION void GSSAPI_LIB_CALL gss_set_log_function(void *ctx, void (*func)(void * ctx, int level, const char *fmt, va_list)); +GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_FUNCTION +gss_destroy_cred(OM_uint32 *minor_status, + gss_cred_id_t *cred_handle); + GSSAPI_CPP_END #if defined(__APPLE__) && (defined(__ppc__) || defined(__ppc64__) || defined(__i386__) || defined(__x86_64__)) diff --git a/lib/gssapi/mech/gss_destroy_cred.c b/lib/gssapi/mech/gss_destroy_cred.c index f3bd54981..93c810991 100644 --- a/lib/gssapi/mech/gss_destroy_cred.c +++ b/lib/gssapi/mech/gss_destroy_cred.c @@ -29,8 +29,22 @@ #include "mech_locl.h" #include -OM_uint32 GSSAPI_LIB_FUNCTION -gss_destroy_cred(void *status, +/** + * Destroy a credential + * + * gss_release_cred() frees the memory, gss_destroy_cred() removes the credentials from memory/disk and then call gss_release_cred() on the credential. + * + * @param min_stat minor status code + * @param cred_handle credentail to destory + * + * @returns a gss_error code, see gss_display_status() about printing + * the error code. + * + * @ingroup gssapi + */ + +GSSAPI_LIB_FUNCTION OM_uint32 GSSAPI_LIB_FUNCTION +gss_destroy_cred(OM_uint32 *minor_status, gss_cred_id_t *cred_handle) { struct _gss_cred *cred;