From: John B. <joh...@ne...> - 2000-08-17 12:16:01
|
On Wed, 16 Aug 2000, John Berthels wrote: > > > > You must delete all children entries first before you can delete any > > parent entries. > > Net::LDAP::Util::ldap_delete_tree anyone? This one return true/false and sets $!. I realise this is a bit odd - would it be better to propogate the Net::LDAP::Message back to the caller? jb sub ldap_delete_tree { my $ldap = shift; my $dn = shift; my $msg = $ldap->search( base => $dn, scope => 1, filter => "(objectclass=*)", attr => [ "1.1" ] ); unless( $msg->code() == LDAP_SUCCESS ) { $! = Net::LDAP::Util::ldap_error_text( $msg->code() ); return undef; } # # Recursively get rid of children, if any # foreach my $entry ( $msg->entries() ) { my $dn = $entry->dn(); return undef unless ldap_delete_tree( $ldap, $dn ); } # And then ourselves $msg = $ldap->delete( $dn ); unless( $msg->code() == LDAP_SUCCESS ) { $! = Net::LDAP::Util::ldap_error_text( $msg->code() ); return undef; } return 1; } |