- /* XXX Heimdal allows to use the MEMORY: type with empty argument ? */
- ccname = ap_psprintf(r->pool, "MEMORY:%s/krb5cc_apache_XXXXXX", P_tmpdir);
- fd = mkstemp(ccname + strlen("MEMORY:"));
- if (fd < 0) {
- log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
- "mkstemp() failed: %s", strerror(errno));
- ret = HTTP_INTERNAL_SERVER_ERROR;
- goto end;
- }
- close(fd);
-
- code = krb5_cc_resolve(kcontext, ccname, &ccache);
+#ifdef HEIMDAL
+ code = krb5_cc_gen_new(kcontext, &krb5_mcc_ops, &ccache);
+#else
+ code = krb5_cc_resolve(kcontext, "MEMORY:", &ccache);
+#endif