From af77ace51848edf67f0e7508d10f83b9a26c7c2f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Sun, 5 Jul 2009 05:08:26 +0000 Subject: [PATCH] Push enterprise support into the bdblayer. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@25315 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/hdb/common.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/hdb/common.c b/lib/hdb/common.c index cd796dca9..3533d2e45 100644 --- a/lib/hdb/common.c +++ b/lib/hdb/common.c @@ -104,10 +104,28 @@ krb5_error_code _hdb_fetch(krb5_context context, HDB *db, krb5_const_principal principal, unsigned flags, hdb_entry_ex *entry) { + krb5_principal enterprise_principal = NULL; krb5_data key, value; int code; + if (principal->name.name_type == KRB5_NT_ENTERPRISE_PRINCIPAL) { + if (principal->name.name_string.len != 1) { + ret = KRB5_PARSE_MALFORMED; + krb5_set_error_message(context, ret, "malformed principal: " + "enterprise name with %d name components", + principal->name.name_string.len); + return ret; + } + ret = krb5_parse_name(context, principal->name.name_string.val[0], + &enterprise_principal); + if (ret) + return ret; + principal = enterprise_principal; + } + hdb_principal2key(context, principal, &key); + if (enterprise_principal) + krb5_free_principal(context, principal); code = db->hdb__get(context, db, key, &value); krb5_data_free(&key); if(code) -- 2.11.4.GIT