diff --git a/daemons/ipa-kdb/ipa_kdb_principals.c b/daemons/ipa-kdb/ipa_kdb_principals.c index 58f462f8a..b208d090a 100644 --- a/daemons/ipa-kdb/ipa_kdb_principals.c +++ b/daemons/ipa-kdb/ipa_kdb_principals.c @@ -21,6 +21,7 @@ */ #include "ipa_kdb.h" +#include "ipa_krb5.h" #include /* @@ -544,6 +545,17 @@ static krb5_error_code ipadb_parse_ldap_entry(krb5_context kcontext, return KRB5_KDB_DBNOTINITED; } lcontext = ipactx->lcontext; + if (!lcontext) { + krb5_klog_syslog(LOG_INFO, + "No LDAP connection in ipadb_parse_ldap_entry(); retrying...\n"); + ret = ipadb_get_connection(ipactx); + if (ret != 0) { + krb5_klog_syslog(LOG_ERR, + "No LDAP connection on retry in ipadb_parse_ldap_entry()!\n"); + kerr = KRB5_KDB_INTERNAL_ERROR; + goto done; + } + } entry->magic = KRB5_KDB_MAGIC_NUMBER; entry->len = KRB5_KDB_V1_BASE_LENGTH;