OK, I tried your suggestion but now output (there it must be a ref?)
I've narrowed this down to the way I was handling connect. My eval statement wasn't detecting the wrong password I had set. Anyway, I RTFM and am now using 'if ($mesg->code)' to detect any additional error the eval statement does not handle. My code now detects a timeout connection with a 'I/O Error' and re-binds (after an unbind). Is the 'I/O Error' OK? Thanks, Chris --- Graham Barr <[EMAIL PROTECTED]> wrote: > On Nov 11, 2003, at 17:55, Chris Masters wrote: > > I upgraded to 0.30 directly after you suggested. > All > > mails after your suggestion were refering to a > 0.30 > > version installation. > > Then please add the following directly after your > call to search and > before you try to call any methods on $mesg > > warn "'$mesg'" unless ref($mesg); > > Graham. > > > > > > > --- Graham Barr <[EMAIL PROTECTED]> wrote: > >> Have you tried perl-ldap-0.30 as suggested in a > >> previous mail ? > >> > >> Graham. > >> > >> On Nov 11, 2003, at 17:21, Chris Masters wrote: > >> > >>> Appologies. > >>> > >>> I was not unbinding before I attempted to rebind > >> after > >>> I found the error. > >>> > >>> Does 'I/O Error' refer to the socket connection > >> being > >>> closed by the server? > >>> > >>> > >>> Note: forwarded message attached. > >>> > >>> > >>> __________________________________ > >>> Do you Yahoo!? > >>> Protect your identity with Yahoo! Mail > >> AddressGuard > >>> http://antispam.yahoo.com/whatsnewfree > >>> From: Chris Masters <[EMAIL PROTECTED]> > >>> Date: November 11, 2003 16:54:16 GMT > >>> To: [EMAIL PROTECTED] > >>> Subject: Fwd: CAUSE: Can't call method X without > a > >> package or object > >>> > >>> > >>> Hi Again, > >>> > >>> I'm handling this error by using the code below > >> and to > >>> catch an error and establish a new connection. > The > >>> problem is that the root error seems to be 'I/O > >> Error' > >>> rather than a 'lost connection' error. I can't > >> find > >>> this in the Net::LDAP::Constant list. > >>> > >>> It seems to happen after the server disconnects > >> the > >>> LDAP connection after inactivity. This is fine, > >> but > >>> after I've made the reconnection, I get the > error > >> on > >>> each query and it binds each time. > >>> > >>> sub simple_ldap_query_succeeds($) > >>> { > >>> my ($ldap) = @_; > >>> my $version; > >>> undef $mesg; > >>> my $result = 0; > >>> > >>> eval > >>> { > >>> $result = 1; > >>> $mesg = $ldap->search ( > >>> base => > >>> "ou=people,dc=domain,dc=com", > >>> filter => > >>> "(objectclass=testconnection)", > >>> ); > >>> > >>> if($mesg->code) > >>> { > >>> > >> md_syslog('err',"Reconnecting > >>> LDAP: simple_ldap_query_succeeds failure: $@"); > >>> $result = 0; > >>> } > >>> }; > >>> > >>> if($@) > >>> { > >>> md_syslog('err',"Reconnecting > >> LDAP: > >>> simple_ldap_query_succeeds failure: $@"); > >>> $result = 0; > >>> } > >>> return $result; > >>> } > >>> > >>> Any ideas? > >>> > >>> TIA, Chris > >>> > >>> > >>> > >>> > >>> Note: forwarded message attached. > >>> > >>> > >>> __________________________________ > >>> Do you Yahoo!? > >>> Protect your identity with Yahoo! Mail > >> AddressGuard > >>> http://antispam.yahoo.com/whatsnewfree > >>> From: Chris Masters <[EMAIL PROTECTED]> > >>> Date: November 11, 2003 13:16:06 GMT > >>> To: [EMAIL PROTECTED] > >>> Subject: CAUSE: Can't call method X without a > >> package or object > >>> > >>> > >>> Hi Graham, > >>> > >>> Managed to get this before it failed: > >>> > >>> LDAP Error: Server encountered an internal error > >>> > >>> Is this really server side? > >>> > >>> Thanks for any help on this, > >>> > >>> Chris > >>> > >>> __________________________________ > >>> Do you Yahoo!? > >>> Protect your identity with Yahoo! Mail > >> AddressGuard > >>> http://antispam.yahoo.com/whatsnewfree > >>> > >>> > >>> > >> > > > > > > __________________________________ > > Do you Yahoo!? > > Protect your identity with Yahoo! Mail > AddressGuard > > http://antispam.yahoo.com/whatsnewfree > > > __________________________________ Do you Yahoo!? Protect your identity with Yahoo! Mail AddressGuard http://antispam.yahoo.com/whatsnewfree
