summaryrefslogtreecommitdiffstats
path: root/daemons
diff options
context:
space:
mode:
authorLudwig Krispenz <lkrispen@redhat.com>2015-05-29 16:12:44 +0200
committerPetr Vobornik <pvoborni@redhat.com>2015-06-02 14:05:32 +0200
commitfaa4d0b6ea6e911c1098b070d1959b3106d5b5b2 (patch)
treea1d9f3e897ae5c5b38075639b5dff344aec9090e /daemons
parentaf8f44c86ab37d83b952c0f021c6509c48be7da8 (diff)
downloadfreeipa-faa4d0b6ea6e911c1098b070d1959b3106d5b5b2.tar.gz
freeipa-faa4d0b6ea6e911c1098b070d1959b3106d5b5b2.tar.xz
freeipa-faa4d0b6ea6e911c1098b070d1959b3106d5b5b2.zip
replica install fails with domain level 1
when updating an replication agreement from a toplogy segment an incorrect default value was used for bindmethod. Only attributes explicitely set in the segment should be applied. At shutdown the server could crash because the plugin was called after it was stopped. https://fedorahosted.org/freeipa/ticket/5035 Reviewed-By: Petr Vobornik <pvoborni@redhat.com> Reviewed-By: Thierry Bordaz <tbordaz@redhat.com>
Diffstat (limited to 'daemons')
-rw-r--r--daemons/ipa-slapi-plugins/topology/topology_agmt.c3
-rw-r--r--daemons/ipa-slapi-plugins/topology/topology_init.c2
-rw-r--r--daemons/ipa-slapi-plugins/topology/topology_util.c3
3 files changed, 3 insertions, 5 deletions
diff --git a/daemons/ipa-slapi-plugins/topology/topology_agmt.c b/daemons/ipa-slapi-plugins/topology/topology_agmt.c
index 57614351e..05edad342 100644
--- a/daemons/ipa-slapi-plugins/topology/topology_agmt.c
+++ b/daemons/ipa-slapi-plugins/topology/topology_agmt.c
@@ -70,7 +70,8 @@ int
ipa_topo_agmt_new(char *hostname, TopoReplica *conf, TopoReplicaAgmt *agmt)
{
int ret = 0;
- if (strcasecmp(agmt->repl_bind_method,"SASL/GSSAPI") == 0) {
+ if ((agmt->repl_bind_method == NULL) /* use GSSAPI as default */ ||
+ (strcasecmp(agmt->repl_bind_method,"SASL/GSSAPI") == 0)) {
ret = ipa_topo_agmt_setup(hostname, conf, agmt, 1);
} else {
ret = ipa_topo_agmt_setup(hostname, conf, agmt, 0);
diff --git a/daemons/ipa-slapi-plugins/topology/topology_init.c b/daemons/ipa-slapi-plugins/topology/topology_init.c
index f45086760..77e740ea1 100644
--- a/daemons/ipa-slapi-plugins/topology/topology_init.c
+++ b/daemons/ipa-slapi-plugins/topology/topology_init.c
@@ -225,12 +225,12 @@ static int
ipa_topo_close(Slapi_PBlock * pb)
{
+ ipa_topo_set_plugin_active(0);
slapi_config_remove_callback(SLAPI_OPERATION_SEARCH, DSE_FLAG_PREOP,
"", LDAP_SCOPE_BASE, "(objectclass=*)", ipa_topo_rootdse_search);
slapi_unregister_backend_state_change((void *)ipa_topo_be_state_change);
ipa_topo_free_plugin_config();
return 0;
-
}
static int
ipa_topo_rootdse_init(Slapi_PBlock *pb)
diff --git a/daemons/ipa-slapi-plugins/topology/topology_util.c b/daemons/ipa-slapi-plugins/topology/topology_util.c
index 94d8b33fd..f206464a5 100644
--- a/daemons/ipa-slapi-plugins/topology/topology_util.c
+++ b/daemons/ipa-slapi-plugins/topology/topology_util.c
@@ -329,9 +329,6 @@ ipa_topo_util_agmt_from_entry(Slapi_Entry *entry, char *replRoot, char *fromHost
ipa_topo_util_set_segm_attr(agmt, mattrs[i], mval);
}
}
- if (agmt->repl_bind_method == NULL) {
- agmt->repl_bind_method = slapi_ch_strdup("SASL/GSSAPI");
- }
return agmt;
}
TopoReplicaSegment *