This seems to be a line that was missed when the memory leak patch was applied. Change line 253 in Net::LDAP::Entry from

$mesg = Net::LDAP::Message->new( {} );

to

$mesg = Net::LDAP::Message->new( $ldap );

should fix it.

Graham.


On 22 Sep 2003, at 10:33, Marco Marongiu wrote:


Has anybody any clues about this problem? Should I include more information?

Thanks
--bronto

Marco Marongiu wrote:
Hello list
I am writing a CGI to manage a bunch of user accounts on a directory server. To modify an entry I simply did:
$msg = $e->update($ldap) ;
Unfortunately, I didn't issue a changetype() before, so it didn't what I expected (modify instead of add). So I wrote:
$e->changetype('modify') ;
$msg = $e->update($ldap) ;
which produces the following error:
Can't call method "inner" on unblessed reference at /usr/local/share/perl/5.8.0/Net/LDAP/Message line 26, <DATA> line 417.
I am using Debian testing, perl 5.8.0, Net::LDAP::Message version 1.07, Net::LDAP::Entry version 0.20
Could it be a bug or am I doing something wrong?
BTW, to get the desired behaviour I added this q&d patch to my script, but I don't like it as a permanent solution...
# The followingo code raises an error: bug in Net::LDAP::Message?
# $e->changetype('modify') ;
# $msg = $e->update($ldap) ;
# This is a temporary patch, until we know if there is something
# wrong on that module, or if we are doing wrong somewhere
{
my %changes ;
foreach my $attr ($e->attributes( nooptions => 1 )) {
my @values = $e->get_value($attr) ;
$changes{$attr} = @values == 1? $values[0]: [EMAIL PROTECTED] ;
}
$msg = $ldap->modify($e,replace => \%changes) ;
}
thanks for help
--M


--
Marco Marongiu                            Email: [EMAIL PROTECTED]
System Administrator                      Phone: +39 070 460 1684
Tiscali S.p.A.





Reply via email to