Hi,

On Friday, 4. August 2006 14:04, B.P.S. Rajaram wrote:
> Hi,
> I have a subroutine but my entry doesn't seems to appear in the destination
> directory. Any idea... sub add_entry_to_dest_ds
>   { my ($filter, $base,$scope,$attrs)   = @_;
>    my $src_result             = $src_ldap->search (
> base=>"$base",scope=>"$scope",filter=>"$filter",attrs=>@$attrs);
>
>     my $attribute_cert_one = 'usercertificate';
>    my $attribute_cert_two = 'usercertificate;binary';
>
>     $logger->debug_message ( "Getting object information on server:
> $src_ds" ); $logger->debug_message ( "Contacting Directory Server: $src_ds"
> ); $logger->debug_message ( "Contacting Directory Server: $src_ds returned
> message: $tmp" ); $logger->debug_message ( "Performing search with base:
> $base, scope: $scope, filter: $filter" );
>
>    foreach $entry ($src_result->all_entries())
>    { $dest_entry = Net::LDAP::Entry->new;
>
>     $dest_entry = $entry->clone;
>
>     $logger->debug_message ( "Retrieved entry: '".$dest_entry->dn()."'");
>
>     foreach $attributes ($dest_entry->attributes)
>     {  if (lc($attributes) eq "usercertificate;binary")
>       { @cert_bin_values = $dest_entry->get_value($attributes);
>        foreach $cert_bin_value (@cert_bin_values)
>        { $cert_bin_decoded = Crypt::X509->new( cert => $cert_bin_value);
>         $logger->debug_message ( "Binary cert
> version:".$cert_bin_decoded->serial); }
>       }
>
>       if (lc($attributes) eq "usercertificate")
>       { @cert_ascii_values = $dest_entry->get_value($attributes);
>        foreach $cert_ascii_value  (@cert_ascii_values)
>        { $cert__ascii_decoded = Crypt::X509->new( cert =>
> $cert_ascii_value); $logger->debug_message ( "Ascii cert
> version:".$cert__ascii_decoded->serial); }
>       }
>
>       if   (($attributes ne $attribute_cert_one) &&  ($attributes ne
> $attribute_cert_two)) { $logger->debug_message ( "---> Containing
> attribute:".$attributes); }
>
>
>    }
>
>     #$dest_entry->changetype('add');
>     $result = $dest_ldap->add($dest_entry);
>     $dest_entry->update ( $dest_ldap );
You do not need both methods of writing here:
Either do it using Net::LDAP->add() or using Net::LDAP::Entry->update().

What does $result->code() say ?
>
>     $ldif_add->write_entry($dest_entry);
>     $logger->debug_message ( "Updating entry: '".$dest_entry->dn()."' with
> returned message: '".$result->error()."', code: ".$result->code()."'"); }
>  }

What do the destination server logs say ?

Regards
Peter

-- 
Peter Marschall
[EMAIL PROTECTED]

Reply via email to