diff options
Diffstat (limited to 'ldap/admin/src')
| -rw-r--r-- | ldap/admin/src/scripts/10delautodnsuffix.pl | 23 | ||||
| -rw-r--r-- | ldap/admin/src/scripts/10fixrundir.pl | 28 |
2 files changed, 51 insertions, 0 deletions
diff --git a/ldap/admin/src/scripts/10delautodnsuffix.pl b/ldap/admin/src/scripts/10delautodnsuffix.pl new file mode 100644 index 00000000..548a2d13 --- /dev/null +++ b/ldap/admin/src/scripts/10delautodnsuffix.pl @@ -0,0 +1,23 @@ +use Mozilla::LDAP::Conn; +use Mozilla::LDAP::Utils qw(normalizeDN); +use Mozilla::LDAP::API qw(:constant ldap_url_parse ldap_explode_dn); + +sub runinst { + my ($inf, $inst, $dseldif, $conn) = @_; + + my @errs; + + # see if nsslapd-ldapiautodnsuffix is defined + my $ent = $conn->search("cn=config", "base", "(objectclass=*)"); + if (!$ent) { + return ('error_finding_config_entry', 'cn=config', $conn->getErrorString()); + } + + if ($ent->getValues('nsslapd-ldapiautodnsuffix')) { + $ent->remove('nsslapd-ldapiautodnsuffix'); + $conn->update($ent); + # ignore errors - cn=config attr deletion not allowed over ldap + } + + return (); +} diff --git a/ldap/admin/src/scripts/10fixrundir.pl b/ldap/admin/src/scripts/10fixrundir.pl new file mode 100644 index 00000000..a1e75240 --- /dev/null +++ b/ldap/admin/src/scripts/10fixrundir.pl @@ -0,0 +1,28 @@ +use Mozilla::LDAP::Conn; +use Mozilla::LDAP::Utils qw(normalizeDN); +use Mozilla::LDAP::API qw(:constant ldap_url_parse ldap_explode_dn); + +sub runinst { + my ($inf, $inst, $dseldif, $conn) = @_; + + my @errs; + + # see if nsslapd-rundir is defined + my $ent = $conn->search("cn=config", "base", "(objectclass=*)"); + if (!$ent) { + return ('error_finding_config_entry', 'cn=config', $conn->getErrorString()); + } + + if (!$ent->getValues('nsslapd-rundir')) { + $ent->setValues('nsslapd-rundir', $inf->{slapd}->{run_dir}); + # mark as modified so update will use a replace instead of an add + $ent->attrModified('nsslapd-rundir'); + $conn->update($ent); + my $rc = $conn->getErrorCode(); + if ($rc) { + return ('error_updating_entry', 'cn=config', $conn->getErrorString()); + } + } + + return (); +} |
