steffen: server/perl-kolab/Kolab-LDAP LDAP.pm,1.25,1.26

cvs at intevation.de cvs at intevation.de
Fri Mar 18 08:58:55 CET 2005


Author: steffen

Update of /kolabrepository/server/perl-kolab/Kolab-LDAP
In directory doto:/tmp/cvs-serv25193/Kolab-LDAP

Modified Files:
	LDAP.pm 
Log Message:
Issue687 (deletion logic) + better error-logging

Index: LDAP.pm
===================================================================
RCS file: /kolabrepository/server/perl-kolab/Kolab-LDAP/LDAP.pm,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- LDAP.pm	24 Feb 2005 11:16:21 -0000	1.25
+++ LDAP.pm	18 Mar 2005 07:58:53 -0000	1.26
@@ -379,17 +379,20 @@
 	  Kolab::log('L', "Unable to remove DN `$dn', master LDAP server not available", KOLAB_WARN);
 	  return 0;
 	}
-	if( ref($del) eq 'ARRAY' && scalar(@$del) == 1 ) {
-	  # Ok we are the last one...
+	if( lc ($Kolab::config{'is_master'}) eq 'true' && ref($del) eq 'ARRAY' && scalar(@$del) == 1 ) {
+	  # Ok we are the last one and the master
 	  Kolab::log('L', "Removing DN `$dn'");
 	  my $mesg = $masterldap->delete($dn);
 	  if ($mesg && $mesg->code ) {
 	    Kolab::log('L', "Unable to remove DN `$dn': ".$mesg->error, KOLAB_WARN);
 	  }
-	} else {
+	} elsif( lc ($Kolab::config{'is_master'}) eq 'false' ) {
 	  # Just remove us from the kolabdeleteflag
-	  Kolab::log('L', "Removing ".$Kolab::config{'fqdnhostname'}." from kolabdeleteflag in `$dn'");
-	  my $mesg = $masterldap->modify( $dn, delete => 
+	  # master does not perform this step as it should 
+	  # be the last to delete and remove the object
+	  Kolab::log('L', "Removing ".$Kolab::config{'fqdnhostname'}." from ".
+		     $Kolab::config{$p . '_field_deleted'}." in `$dn'");
+	  my $mesg = $masterldap->modify( $dn, delete =>
 					  { $Kolab::config{$p . '_field_deleted'} =>
 					    $Kolab::config{'fqdnhostname'} } );
 	  if ($mesg && $mesg->code) {





More information about the commits mailing list