summaryrefslogtreecommitdiffstats
path: root/daemons/ipa-slapi-plugins
diff options
context:
space:
mode:
authorMartin Babinsky <mbabinsk@redhat.com>2015-09-08 17:49:51 +0200
committerMartin Basti <mbasti@redhat.com>2016-06-23 09:48:06 +0200
commitb169a72735fccb170adb5c84ec1bcc10a70e5494 (patch)
tree123009b13b540c230345310c30697e715e7dc4f2 /daemons/ipa-slapi-plugins
parent7ed7a86511ec516c2f785968050f5d0a42978ba5 (diff)
downloadfreeipa-b169a72735fccb170adb5c84ec1bcc10a70e5494.tar.gz
freeipa-b169a72735fccb170adb5c84ec1bcc10a70e5494.tar.xz
freeipa-b169a72735fccb170adb5c84ec1bcc10a70e5494.zip
ipa-enrollment: set krbCanonicalName attribute on enrolled host entry
Part of https://fedorahosted.org/freeipa/ticket/3864 Reviewed-By: David Kupka <dkupka@redhat.com> Reviewed-By: Simo Sorce <ssorce@redhat.com>
Diffstat (limited to 'daemons/ipa-slapi-plugins')
-rw-r--r--daemons/ipa-slapi-plugins/ipa-enrollment/ipa_enrollment.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/daemons/ipa-slapi-plugins/ipa-enrollment/ipa_enrollment.c b/daemons/ipa-slapi-plugins/ipa-enrollment/ipa_enrollment.c
index a3dcf08a6..26cbb69d7 100644
--- a/daemons/ipa-slapi-plugins/ipa-enrollment/ipa_enrollment.c
+++ b/daemons/ipa-slapi-plugins/ipa-enrollment/ipa_enrollment.c
@@ -142,6 +142,7 @@ ipa_join(Slapi_PBlock *pb)
int scope = LDAP_SCOPE_SUBTREE;
char *principal = NULL;
+ char *princ_canonical = NULL;
struct berval retbval;
if (NULL == realm) {
@@ -271,6 +272,16 @@ ipa_join(Slapi_PBlock *pb)
slapi_mods_add_string(smods, LDAP_MOD_ADD, "krbPrincipalName", principal);
slapi_mods_add_string(smods, LDAP_MOD_ADD, "objectClass", "krbPrincipalAux");
+ /* check for krbCanonicalName attribute. If not present, set it to same
+ * value as krbPrincipalName*/
+ princ_canonical = slapi_entry_attr_get_charptr(targetEntry,
+ "krbCanonicalName");
+
+ if (NULL == princ_canonical) {
+ slapi_mods_add_string(smods, LDAP_MOD_ADD, "krbCanonicalName",
+ principal);
+ }
+
pbtm = slapi_pblock_new();
slapi_modify_internal_set_pb (pbtm, slapi_entry_get_dn_const(targetEntry),
slapi_mods_get_ldapmods_byref(smods),
@@ -325,6 +336,10 @@ free_and_return:
free(principal);
+ if (princ_canonical) {
+ free(princ_canonical);
+ }
+
return SLAPI_PLUGIN_EXTENDED_SENT_RESULT;
}