summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/krb5/ccache/file/fcc_write.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/src/lib/krb5/ccache/file/fcc_write.c b/src/lib/krb5/ccache/file/fcc_write.c
index e854e1a1c..766463ddd 100644
--- a/src/lib/krb5/ccache/file/fcc_write.c
+++ b/src/lib/krb5/ccache/file/fcc_write.c
@@ -73,28 +73,30 @@ krb5_fcc_write(id, buf, len)
* system errors
*/
+/* XXX TODO: write principal type to file XXX */
+
krb5_error_code
krb5_fcc_store_principal(id, princ)
krb5_ccache id;
krb5_principal princ;
{
- krb5_error_code ret;
- krb5_principal temp;
- krb5_int32 i, length = 0;
+ krb5_error_code ret;
+ krb5_int32 i, length;
- /* Count the number of components */
- temp = princ;
- while (*temp++)
- length += 1;
+ length = krb5_princ_size(princ);
- ret = krb5_fcc_store_int32(id, &length);
- CHECK(ret);
- for (i=0; i < length; i++) {
- ret = krb5_fcc_store_data(id, princ[i]);
- CHECK(ret);
- }
+ ret = krb5_fcc_store_int32(id, &length);
+ CHECK(ret);
- return KRB5_OK;
+ ret = krb5_fcc_store_data(id, krb5_princ_realm(princ));
+ CHECK(ret);
+
+ for (i=0; i < length; i++) {
+ ret = krb5_fcc_store_data(id, krb5_princ_component(princ, i));
+ CHECK(ret);
+ }
+
+ return KRB5_OK;
}
krb5_error_code