Subject: | Net-LDAP 0.51 is not working with Active Perl 5.16 with Socket 2.007 onwards |
Hi,
I have migrated to perl 5.16 from 5.14. Below is my configuration,
Perl: ActiveState Perl 5.16 (This is perl 5, version 16, subversion 1 (v5.16.1) built for MSWin32-x86-multi-thread)
OS: Windows 7 64 bit
compiler: GCC 4.7.0
Make: dmake
Socket.pm: 2.008
Net::LDAP: 0.51
After updating to Socket.pm 2.007 onwards (Sockets 2.001 version is perfectly working with Net::LDAP. I feel , Net::LDAP might have broken in
Socket 2.002 - Socket 2.006 ) Net::LDAP module is not working properly.
Below is the mail communication I sent to Net::LDAP community,
<Mail>
I downloaded latest version of Net-LDAP module (0.51) from cpan.org, compiled and installed. damke test PASSED no errors. But when I use the
following code,
<code>
use strict;
use warnings;
use Net::LDAP 0.51;
use Win32;
use Data::Dumper;
my $userName = Win32::DomainName().'\\'.Win32::LoginName();
my $pw="xxxxxx";
#$pw=~s/\%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;
#$pw=~s/\+/ /g;
my $host="xx.xx.xxx";
my $ldap = Net::LDAP->new($host) or die "Can't connect to LDAP server: $@";
my $mesg = $ldap->bind($userName, password=>$pw);
my $results = sprintf("%s",$mesg->error);
print "\n MSG: ",$results;
</code>
I get following error,
<snip>
syswrite() on unopened filehandle GEN0 at C:/Perl/site/lib/Net/LDAP.pm line 847, <DATA> line 581.
MSG: Bad file descriptor
</snip>
I suspect this error is caused due to "Socket.pm", I have a updated "Socket.pm" version 2.007. When I uninstall this module , perl uses
Socket.pm from c:\perl\lib which is Socket.pm version 2.001 and I dont get any error in Net-LDAP.
So my finding is Net-LDAP is not properly working with Sockets.pm 2.007.
Thanks for this awesome module, I use it to authenticate users in my organization.
</Mail>
Net::LDAP community feels that it is an issue with Socket.pm , Please see their technical explanation here:
http://www.nntp.perl.org/group/perl.ldap/2012/12/msg3655.html
Thanks a ton for spending time to Perl community.
Thanks,
Bakkiaraj M