int authenticate_gss_client_clean()

in src/kerberosgss.c [202:232]


int authenticate_gss_client_clean(gss_client_state *state)
{
    OM_uint32 maj_stat;
    OM_uint32 min_stat;
    int ret = AUTH_GSS_COMPLETE;
    
    if (state->context != GSS_C_NO_CONTEXT) {
        maj_stat = gss_delete_sec_context(
            &min_stat, &state->context, GSS_C_NO_BUFFER
        );
    }
    if (state->server_name != GSS_C_NO_NAME) {
        maj_stat = gss_release_name(&min_stat, &state->server_name);
    }
    if (
        state->client_creds != GSS_C_NO_CREDENTIAL &&
        ! (state->gss_flags & GSS_C_DELEG_FLAG)
    ) {
        maj_stat = gss_release_cred(&min_stat, &state->client_creds);
    }
    if (state->username != NULL) {
        free(state->username);
        state->username = NULL;
    }
    if (state->response != NULL) {
        free(state->response);
        state->response = NULL;
    }
    
    return ret;
}