diff options
author | Martin Babinsky <mbabinsk@redhat.com> | 2015-09-08 17:49:51 +0200 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2016-06-23 09:48:06 +0200 |
commit | b169a72735fccb170adb5c84ec1bcc10a70e5494 (patch) | |
tree | 123009b13b540c230345310c30697e715e7dc4f2 /daemons/ipa-slapi-plugins | |
parent | 7ed7a86511ec516c2f785968050f5d0a42978ba5 (diff) | |
download | freeipa-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.c | 15 |
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; } |