Exemple #1
0
const char * KRB5_CALLCONV
krb5_cc_default_name(krb5_context context)
{
    krb5_os_context os_ctx;
    char *profstr, *envstr;

    if (!context || context->magic != KV5M_CONTEXT)
        return NULL;

    os_ctx = &context->os_context;
    if (os_ctx->default_ccname != NULL)
        return os_ctx->default_ccname;

    /* Try the environment variable first. */
    envstr = getenv(KRB5_ENV_CCNAME);
    if (envstr != NULL) {
        os_ctx->default_ccname = strdup(envstr);
        return os_ctx->default_ccname;
    }

    if (profile_get_string(context->profile, KRB5_CONF_LIBDEFAULTS,
                           KRB5_CONF_DEFAULT_CCACHE_NAME, NULL, NULL,
                           &profstr) == 0 && profstr != NULL) {
        (void)k5_expand_path_tokens(context, profstr, &os_ctx->default_ccname);
        profile_release_string(profstr);
        return os_ctx->default_ccname;
    }

    /* Fall back on the default ccache name for the OS. */
    get_from_os(context);
    return os_ctx->default_ccname;
}
Exemple #2
0
const char * KRB5_CALLCONV
krb5_cc_default_name(krb5_context context)
{
    krb5_error_code err = 0;
    krb5_os_context os_ctx = NULL;

    if (!context || context->magic != KV5M_CONTEXT) { err = KV5M_CONTEXT; }

    if (!err) {
        os_ctx = &context->os_context;

        if (os_ctx->default_ccname == NULL) {
            /* Default ccache name has not been set yet */
            char *new_ccname = NULL;
            char new_ccbuf[1024];

            /* try the environment variable first */
            new_ccname = getenv(KRB5_ENV_CCNAME);

            if (new_ccname == NULL) {
                /* fall back on the default ccache name for the OS */
                new_ccname = new_ccbuf;
                err = get_from_os (new_ccbuf, sizeof (new_ccbuf));
            }

            if (!err) {
                err = krb5_cc_set_default_name (context, new_ccname);
            }
        }
    }

    return err ? NULL : os_ctx->default_ccname;
}
Exemple #3
0
/*
 * caller must free name
 */
krb5_error_code
krb5int_cc_os_default_name(krb5_context context, char **name)
{
    krb5_error_code retval = 0;
    char *tmpname = NULL;

    *name = NULL;
    tmpname = malloc(BUFSIZ);
    if (tmpname == NULL)
        return ENOMEM;

    retval = get_from_os(tmpname, BUFSIZ);
    *name = tmpname;
    return retval;
}