static krb5_error_code v5_convert(krb5_context context, krb5_ccache id, krb5_creds *cred, uid_t uid, const char *cell, struct kafs_token *kt) { krb5_error_code ret; char *c, *val; c = strdup(cell); if (c == NULL) return ENOMEM; _kafs_foldup(c, c); krb5_appdefault_string (context, "libkafs", c, "afs-use-524", "2b", &val); free(c); if (strcasecmp(val, "local") == 0 || strcasecmp(val, "2b") == 0) ret = v5_to_kt(cred, uid, kt, 1); else ret = v5_to_kt(cred, uid, kt, 0); free(val); return ret; }
static krb5_error_code v5_convert(krb5_context context, krb5_ccache id, krb5_creds *cred, uid_t uid, const char *cell, struct kafs_token *kt) { krb5_error_code ret; char *c, *val; c = strdup(cell); if (c == NULL) return ENOMEM; _kafs_foldup(c, c); krb5_appdefault_string (context, "libkafs", c, "afs-use-524", "2b", &val); free(c); if (strcasecmp(val, "local") == 0 || strcasecmp(val, "2b") == 0) ret = v5_to_kt(cred, uid, kt, 1); else if(strcasecmp(val, "yes") == 0 || strcasecmp(val, "true") == 0 || atoi(val)) { struct credentials cred4; if (id == NULL) ret = krb524_convert_creds_kdc(context, cred, &cred4); else ret = krb524_convert_creds_kdc_ccache(context, id, cred, &cred4); if (ret) goto out; ret = _kafs_v4_to_kt(&cred4, uid, kt); } else ret = v5_to_kt(cred, uid, kt, 0); out: free(val); return ret; }