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; }
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; }
/* * 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; }