55
52
cachetype = krb5_rc_default_type(context);
57
len = piece->length + 3 + 1;
54
krb5int_buf_init_dynamic(&buf);
55
krb5int_buf_add(&buf, cachetype);
56
krb5int_buf_add(&buf, ":");
58
57
for (i = 0; i < piece->length; i++) {
59
58
if (piece->data[i] == '-')
59
krb5int_buf_add(&buf, "--");
61
60
else if (!isvalidrcname((int) piece->data[i]))
66
len += 2; /* _<uid> */
67
for (tens = 1; (uid / tens) > 9 ; tens *= 10)
71
cachename = malloc(strlen(cachetype) + 5 + len);
76
strcpy(cachename, cachetype);
78
p = strlen(cachename);
80
for (i = 0; i < piece->length; i++) {
81
if (piece->data[i] == '-') {
86
if (!isvalidrcname((int) piece->data[i])) {
87
sprintf(tmp, "%03o", piece->data[i]);
89
cachename[p++] = tmp[0];
90
cachename[p++] = tmp[1];
91
cachename[p++] = tmp[2];
94
cachename[p++] = piece->data[i];
100
cachename[p++] = '0' + ((uid / tens) % 10);
105
cachename[p++] = '\0';
61
krb5int_buf_add_fmt(&buf, "-%03o", piece->data[i]);
63
krb5int_buf_add_len(&buf, &piece->data[i], 1);
66
krb5int_buf_add_fmt(&buf, "_%lu", uid);
69
cachename = krb5int_buf_data(&buf);
70
if (cachename == NULL)
107
73
retval = krb5_rc_resolve_full(context, &rcache, cachename);
114
* First try to recover the replay cache; if that doesn't work,
117
retval = krb5_rc_recover_or_initialize(context, rcache, context->clockskew);
119
krb5_rc_close(context, rcache);
77
retval = krb5_rc_recover_or_initialize(context, rcache,