You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(9) |
Nov
(4) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(23) |
Feb
(18) |
Mar
(11) |
Apr
(3) |
May
(23) |
Jun
(13) |
Jul
(16) |
Aug
(11) |
Sep
(5) |
Oct
(4) |
Nov
(2) |
Dec
(4) |
2003 |
Jan
(18) |
Feb
(13) |
Mar
(56) |
Apr
(3) |
May
(124) |
Jun
(21) |
Jul
(2) |
Aug
(8) |
Sep
(1) |
Oct
(23) |
Nov
(4) |
Dec
(2) |
2004 |
Jan
(18) |
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Graham B. <gb...@us...> - 2003-06-09 12:47:50
|
Update of /cvsroot/perl-ldap/ldap/t In directory sc8-pr-cvs1:/tmp/cvs-serv6192/t Added Files: 0-signature.t Log Message: Add a SIGNATURE to the distribution --- NEW FILE: 0-signature.t --- #!/usr/bin/perl # $File: //member/autrijus/Module-Signature/t/0-signature.t $ $Author: gbarr $ # $Revision: 1.1 $ $Change: 1871 $ $DateTime: 2002/11/03 19:22:02 $ use strict; use Test::More tests => 1; SKIP: { if (!eval { require Socket; Socket::inet_aton('pgp.mit.edu') }) { skip("Cannot connect to the keyserver", 1); } elsif (!eval { require Module::Signature; 1 }) { diag("Next time around, consider install Module::Signature,\n". "so you can verify the integrity of this distribution.\n"); skip("Module::Signature not installed", 1); } else { ok(Module::Signature::verify() == Module::Signature::SIGNATURE_OK() => "Valid signature" ); } } __END__ |
From: Graham B. <gb...@us...> - 2003-06-09 12:31:33
|
Update of /cvsroot/perl-ldap/ldap/bin In directory sc8-pr-cvs1:/tmp/cvs-serv30838 Removed Files: ldapdelete.PL ldapmodrdn.PL ldapsearch.PL Log Message: Remove *.PL scripts --- ldapdelete.PL DELETED --- --- ldapmodrdn.PL DELETED --- --- ldapsearch.PL DELETED --- |
From: Graham B. <gb...@us...> - 2003-06-09 12:29:45
|
Update of /cvsroot/perl-ldap/ldap/bin In directory sc8-pr-cvs1:/tmp/cvs-serv30175/bin Added Files: ldapdelete ldapmodrdn ldapsearch Log Message: Depend in MakeMaker to fixup the #! line of installed scripts --- NEW FILE: ldapdelete --- #!/usr/bin/perl # Nearly complete clone of Umich ldapdelete program # # c....@is... # # $Id: ldapdelete,v 1.1 2003/06/09 12:29:42 gbarr Exp $ # # $Log: ldapdelete,v $ # Revision 1.1 2003/06/09 12:29:42 gbarr # Depend in MakeMaker to fixup the #! line of installed scripts # # Revision 1.2 2000/07/30 21:03:50 gbarr # *** empty log message *** # # Revision 1.1 1999/01/11 08:38:46 cjr # Initial revision # # use strict; use Carp; use Net::LDAP; use vars qw($opt_n $opt_v $opt_c $opt_d $opt_D $opt_w $opt_h $opt_p $opt_3); use Getopt::Std; die "Usage: $0 [options] dns\ where:\ dns Distinguished names of entries to delete\ options:\ -n show what would be done but don\'t actually delete\ -v run in verbose mode (diagnostics to standard output)\ -c continue after any delete errors\ -d level set LDAP debugging level to \'level\'\ -D binddn bind dn\ -w passwd bind passwd (for simple authentication)\ -h host ldap server\ -p port port on ldap server\ -3 connect using LDAPv3, otherwise use LDAPv2\n" unless @ARGV; getopts('nvcd:D:w:h:p:3'); $opt_h = 'nameflow.dante.net' unless $opt_h; my %newargs; $newargs{port} = $opt_p if $opt_p; $newargs{debug} = $opt_d if $opt_d; dumpargs("new", $opt_h, \%newargs) if ($opt_n || $opt_v); my $ldap; unless ($opt_n) { $ldap = Net::LDAP->new($opt_h, %newargs) or die $@; } # # Bind as the desired version, falling back if required to v2 # my %bindargs; $bindargs{dn} = $opt_D if $opt_D; $bindargs{password} = $opt_w if $opt_w; $bindargs{version} = $opt_3 ? 3 : 2; if ($bindargs{version} == 3) { dumpargs("bind", undef, \%bindargs) if ($opt_n || $opt_v); unless ($opt_n) { $ldap->bind(%bindargs) or $bindargs{version} = 2; } } if ($bindargs{version} == 2) { dumpargs("bind", undef, \%bindargs) if ($opt_n || $opt_v); unless ($opt_n) { $ldap->bind(%bindargs) or die $@; } } foreach (@ARGV) { if ($opt_n || $opt_v) { print "delete('$_')\n"; } unless ($opt_n) { $ldap->delete($_) or die $@; } } if ($opt_n || $opt_v) { print "unbind()\n"; } unless ($opt_n) { $ldap->unbind() or die $@; } sub dumpargs { my ($cmd,$s,$rh) = @_; my @t; push @t, "'$s'" if $s; map { my $value = $$rh{$_}; if (ref($value) eq 'ARRAY') { push @t, "$_ => [" . join(", ", @$value) . "]"; } else { push @t, "$_ => '$value'"; } } keys(%$rh); print "$cmd(", join(", ", @t), ")\n"; } --- NEW FILE: ldapmodrdn --- #!/usr/bin/perl # Nearly complete clone of Umich ldapmodrdn program # # c....@is... # # $Id: ldapmodrdn,v 1.1 2003/06/09 12:29:42 gbarr Exp $ # # $Log: ldapmodrdn,v $ # Revision 1.1 2003/06/09 12:29:42 gbarr # Depend in MakeMaker to fixup the #! line of installed scripts # # Revision 1.2 2000/07/30 21:03:50 gbarr # *** empty log message *** # # Revision 1.1 1999/01/11 08:39:12 cjr # Initial revision # # use strict; use Carp; use Net::LDAP; use vars qw($opt_n $opt_v $opt_r $opt_c $opt_d $opt_D $opt_w $opt_h $opt_p $opt_3); use Getopt::Std; die "Usage: $0 [options] dn rdn\ where:\ dn Distinguished names of entry to modify\ rdn New Relative Distinguished name of entry\ options:\ -n show what would be done but don\'t actually change entries\ -v run in verbose mode (diagnostics to standard output)\ -r remove old RDN values from the entry\ -c continue after any modrdn errors\ -d level set LDAP debugging level to \'level\'\ -D binddn bind dn\ -w passwd bind passwd (for simple authentication)\ -h host ldap server\ -p port port on ldap server\ -3 connect using LDAPv3, otherwise use LDAPv2\n" unless @ARGV; getopts('nvcd:D:w:h:p:3'); $opt_h = 'nameflow.dante.net' unless $opt_h; my %newargs; $newargs{port} = $opt_p if $opt_p; $newargs{debug} = $opt_d if $opt_d; dumpargs("new", $opt_h, \%newargs) if ($opt_n || $opt_v); my $ldap; unless ($opt_n) { $ldap = Net::LDAP->new($opt_h, %newargs) or die $@; } # # Bind as the desired version, falling back if required to v2 # my %bindargs; $bindargs{dn} = $opt_D if $opt_D; $bindargs{password} = $opt_w if $opt_w; $bindargs{version} = $opt_3 ? 3 : 2; if ($bindargs{version} == 3) { dumpargs("bind", undef, \%bindargs) if ($opt_n || $opt_v); unless ($opt_n) { $ldap->bind(%bindargs) or $bindargs{version} = 2; } } if ($bindargs{version} == 2) { dumpargs("bind", undef, \%bindargs) if ($opt_n || $opt_v); unless ($opt_n) { $ldap->bind(%bindargs) or die $@; } } my %modargs; $modargs{dn} = $ARGV[0]; $modargs{newrdn} = $ARGV[1]; $modargs{deleteoldrdn} = $opt_r ? 1 : 0; if ($opt_n || $opt_v) { dumpargs("moddn",undef,\%modargs); } unless ($opt_n) { $ldap->moddn(%modargs) or die $@; } if ($opt_n || $opt_v) { print "unbind()\n"; } unless ($opt_n) { $ldap->unbind() or die $@; } sub dumpargs { my ($cmd,$s,$rh) = @_; my @t; push @t, "'$s'" if $s; map { my $value = $$rh{$_}; if (ref($value) eq 'ARRAY') { push @t, "$_ => [" . join(", ", @$value) . "]"; } else { push @t, "$_ => '$value'"; } } keys(%$rh); print "$cmd(", join(", ", @t), ")\n"; } --- NEW FILE: ldapsearch --- #!/usr/bin/perl # Nearly complete clone of Umich ldapsearch program # # c....@is... # # $Id: ldapsearch,v 1.1 2003/06/09 12:29:42 gbarr Exp $ # # $Log: ldapsearch,v $ # Revision 1.1 2003/06/09 12:29:42 gbarr # Depend in MakeMaker to fixup the #! line of installed scripts # # Revision 1.3 2000/08/03 17:10:26 gbarr # *** empty log message *** # # Revision 1.3 1999/01/11 08:33:34 cjr # Revised for 0.09 API # # Revision 1.2 1998/10/20 08:38:43 cjr # Add support for binary values (base64 encoding and the -B option) # # Revision 1.1 1998/10/19 15:14:15 cjr # Initial revision # use strict; use Carp; use Net::LDAP; use URI::ldap; use Net::LDAP::LDIF; use vars qw($opt_n $opt_v $opt_t $opt_u $opt_A $opt_B $opt_L $opt_R $opt_d $opt_F $opt_S $opt_f $opt_b $opt_b $opt_s $opt_a $opt_l $opt_z $opt_D $opt_w $opt_h $opt_p $opt_3); use Getopt::Std; # Enums my %scopes = ( 'base' => 0, 'one' => 1, 'sub' => '2' ); my %derefs = ( 'never' => 0, 'search' => 1, 'find' => 2, 'always' => 3 ); # We only print attributes that we know are text # This stuff is in lieu of a workable Schema module my @textsyntax = grep /^\w/, (<<'EOS' =~ /(#.*|\S+)/g); # qw() with comments # RFC 2251 modifiersName modifyTimestamp creatorsName createTimestamp # RFC 2256 objectClass aliasedObjectName knowledgeInformation cn sn serialNumber c l st street o ou title description searchGuide businessCategory postalAddress postalCode postOfficeBox physicalDeliveryOfficeName telephoneNumber telexNumber teletexTerminalIdentifier facsimileTelephoneNumber x121Address internationaliSDNNumber registeredAddress destinationIndicator preferredDeliveryMethod presentationAddress supportedApplicationContext member owner roleOccupant seeAlso userPassword name givenName initials generationQualifier x500UniqueIdentifier dnQualifier enhancedSearchGuide protocolInformation distinguishedName uniqueMember houseIdentifier dmdName # RFC 1274 mail rfc822Mailbox # RFC 2079 labeledURI # Definitions from other schemas goes here... collectivePostalAddress collectiveTelephoneNumber collectiveFacsimileTelephoneNumber supportedLDAPVersion EOS my %istext; # keys are canonicalised attribute names. foreach (@textsyntax) { $istext{lc($_)} = 1; }; die "Usage: $0 [options] filter [attributes...]\ where:\ filter RFC 2254 compliant LDAP search filter\ attributes whitespace-separated list of attributes to retrieve\ (if no attribute list is given, all are retrieved)\ options:\ -n show what would be done but don\'t actually search\ -v run in verbose mode (diagnostics to standard output)\ -A retrieve attribute names only (no values)\ -B do not suppress printing of non-ASCII values\ -L print entries in LDIF format (-B is implied)\ -R do not automatically follow referrals\ -d level set LDAP debugging level to \'level\'\ -F sep print `sep' instead of \'=\' between attribute names and values\ -b basedn base dn for search\ -s scope one of base, one, or sub (search scope)\ -a deref one of never, always, search, or find (alias dereferencing)\ -l time lim time limit (in seconds) for search\ -z size lim size limit (in entries) for search\ -D binddn bind dn\ -w passwd bind passwd (for simple authentication)\ -h host ldap server\ -p port port on ldap server\ -3 connect using LDAPv3, otherwise use LDAPv2\n" unless @ARGV; getopts('nvtuABLRd:F:S:f:b:s:a:l:z:D:w:h:p:3'); die "$0: arguments -t -u -S and -f are not supported yet" if ($opt_t || $opt_u || $opt_S || $opt_f); # Default the host to a known good LDAP server $opt_h = 'nameflow.dante.net' unless $opt_h; $opt_F = '=' unless $opt_F; die "$0: unknown scope $opt_s\n" if $opt_s && !defined($scopes{$opt_s}); die "$0: unknown deref $opt_a\n" if $opt_a && !defined($derefs{$opt_a}); my $filter = shift || die "$0: missing filter\n"; # We are expecting to get back referrals from the search. Each referral may # lead to more referrals being returned, etc etc. # # So we handle this by looping through a list of referrals, taking the top # one each time, but possibly adding extra ones inside the loop. We prime the # list of referrals by making a 'referral' from the command line args. # # The loop body does the open, bind, search, unbind and close. # # The authentication offered to any particular server is not offered to any # other server, unless the referral indicates it should. This prevents you # revealing your password (etc) to random servers. my $initial = URI->new("ldap:"); $initial->host($opt_h); $initial->dn($opt_b); $initial->port($opt_p) if $opt_p; my %exts; $exts{bindname} = $opt_D if $opt_D; $exts{bindpassword} = $opt_w if $opt_w; $initial->extensions(%exts); my @urls = ($initial->as_string); my $ldif = Net::LDAP::LDIF->new if $opt_L; my $first_record = 1; while (@urls) { my $url = URI::ldap->new(shift @urls); my %exts = $url->extensions; my $ldap; my %openargs; my %bindargs; my %searchargs; $bindargs{dn} = $exts{bindname} if $exts{bindname}; $bindargs{password} = $exts{bindpassword} if $exts{bindpassword}; $openargs{port} = $url->port if $url->port; $openargs{debug} = $opt_d if $opt_d; dumpargs("new", $url->host, \%openargs) if ($opt_n || $opt_v); unless ($opt_n) { $ldap = new Net::LDAP($url->host, %openargs) or die $@; } # # Bind as the desired version, falling back if required to v2 # $bindargs{version} = $opt_3 ? 3 : 2; if ($bindargs{version} == 3) { dumpargs("bind", undef, \%bindargs) if ($opt_n || $opt_v); unless ($opt_n) { $ldap->bind(%bindargs) or $bindargs{version} = 2; } } if ($bindargs{version} == 2) { dumpargs("bind", undef, \%bindargs) if ($opt_n || $opt_v); unless ($opt_n) { $ldap->bind(%bindargs) or die $@; } } # Set search arguments $searchargs{base} = $opt_b if $opt_b; $searchargs{base} = $url->dn if $url->dn; $searchargs{scope} = $opt_s if $opt_s; $searchargs{scope} = $url->_scope if defined $url->_scope; $searchargs{scope} = $scopes{$searchargs{scope}} if $searchargs{scope}; $searchargs{deref} = $derefs{$opt_a} if $opt_a; $searchargs{sizelimit} = $opt_z if $opt_z; $searchargs{timelimit} = $opt_l if $opt_l; $searchargs{attrsonly} = 1 if $opt_t; # typesOnly $searchargs{filter} = $filter; $searchargs{attrs} = [ @ARGV ]; dumpargs("search", undef, \%searchargs) if ($opt_n || $opt_v); # Print results # Hm, this is harder work than the actual search! unless ($opt_n) { my $results = $ldap->search(%searchargs) or die $@; my @entries = $results->entries; if ($opt_L) { $ldif->write(@entries); } else { my $entry; foreach $entry (@entries) { print "\n" unless $first_record; $first_record = 0; my ($attr, $val); # Print in a pseudo EDB format # Not a useful format, but it shows how to get to the # attributes and values in an entry print $entry->dn,"\n"; foreach $attr ($entry->attributes) { my $is_printable = $istext{lc($attr)}; foreach $val ($entry->get($attr)) { print "$attr$opt_F"; if ($opt_B || $is_printable) { print "$val\n"; } else { print "(binary value)\n"; } } # foreach value } # foreach attribute } # foreach entry } # EDB format # Check for any referrals my @refs = $results->referrals; if ($opt_v && @refs) { map { print "Referral to: $_\n" } @refs; } push @urls, @refs unless $opt_R; # Check for any search continuation references my @conts = $results->references; if ($opt_v && @conts) { map { print "Continue at: $_\n" } @conts; } push @urls, @conts unless $opt_R; } if ($opt_n || $opt_v) { print "unbind()\n"; } unless ($opt_n) { $ldap->unbind() or die $@; } } # foreach URL sub dumpargs { my ($cmd,$s,$rh) = @_; my @t; push @t, "'$s'" if $s; map { my $value = $$rh{$_}; if (ref($value) eq 'ARRAY') { push @t, "$_ => [" . join(", ", @$value) . "]"; } else { push @t, "$_ => '$value'"; } } keys(%$rh); print "$cmd(", join(", ", @t), ")\n"; } |
From: Graham B. <gb...@us...> - 2003-06-09 12:29:45
|
Update of /cvsroot/perl-ldap/ldap In directory sc8-pr-cvs1:/tmp/cvs-serv30175 Modified Files: MANIFEST Makefile.PL Log Message: Depend in MakeMaker to fixup the #! line of installed scripts Index: MANIFEST =================================================================== RCS file: /cvsroot/perl-ldap/ldap/MANIFEST,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- MANIFEST 9 Jun 2003 12:04:26 -0000 1.25 +++ MANIFEST 9 Jun 2003 12:29:40 -0000 1.26 @@ -7,9 +7,9 @@ README RELEASE_NOTES TODO -bin/ldapdelete.PL -bin/ldapmodrdn.PL -bin/ldapsearch.PL +bin/ldapdelete +bin/ldapmodrdn +bin/ldapsearch contrib/README contrib/dot.tklkup contrib/isMember.pl Index: Makefile.PL =================================================================== RCS file: /cvsroot/perl-ldap/ldap/Makefile.PL,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Makefile.PL 9 Mar 2003 11:00:50 -0000 1.11 +++ Makefile.PL 9 Jun 2003 12:29:41 -0000 1.12 @@ -85,8 +85,6 @@ #--- Write the Makefile --- -my %PL_FILES = map { ($a = $_) =~ s/\.PL// ? ($_,$a) : () } glob('bin/*.PL'); - my @ppd; if ($] >= 5.00503) { @@ -99,8 +97,7 @@ WriteMakefile( VERSION_FROM => $VERSION_FROM, NAME => $DISTNAME, - EXE_FILES => $opt_s ? [ values %PL_FILES ] : [], - PL_FILES => \%PL_FILES, + EXE_FILES => $opt_s ? [ grep -f, glob('bin/*') ] : [], clean => {FILES => 'temp'}, PREREQ_PM => { 'Convert::ASN1' => 0.07 }, @ppd, |
From: Graham B. <gb...@us...> - 2003-06-09 12:04:31
|
Update of /cvsroot/perl-ldap/ldap In directory sc8-pr-cvs1:/tmp/cvs-serv21268 Modified Files: MANIFEST Log Message: Add refloop test to MANIFEST Index: MANIFEST =================================================================== RCS file: /cvsroot/perl-ldap/ldap/MANIFEST,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- MANIFEST 21 May 2003 08:10:53 -0000 1.24 +++ MANIFEST 9 Jun 2003 12:04:26 -0000 1.25 @@ -89,6 +89,7 @@ t/01canon_dn.t t/02filter.t t/03schema.t +t/04refloop.t t/50populate.t t/51search.t t/52modify.t |
From: Graham B. <gb...@us...> - 2003-06-06 22:47:17
|
Update of /cvsroot/perl-ldap/ldap/t In directory sc8-pr-cvs1:/tmp/cvs-serv22500/t Added Files: 04refloop.t Log Message: Fix reference loop problem by hiding the real object behind a tied hash and only using the inner hash internally and the outer hash externally --- NEW FILE: 04refloop.t --- #!perl use Net::LDAP qw(LDAP_UNAVAILABLE); my $devnull = eval { require File::Spec; File::Spec->devnull } || "/dev/null"; unless (-e $devnull) { print "1..0 # Skip no null device\n"; exit; } print "1..5\n"; $::destroy = 0; { my $ldap = Net::LDAP::Dummy->new("host", async => 1); $ldap->bind; # create an internal ref loop require Data::Dumper, print Data::Dumper::Dumper($ldap->inner) if $ENV{TEST_VERBOSE}; } print $::destroy ? "ok 1\n" : "not ok 1\n"; my $ref; my $mesg; $::destroy = 0; { my $ldap = Net::LDAP::Dummy->new("host", async => 1); $mesg = $ldap->bind; # create an internal ref loop $ref = $ldap->inner->outer; print +($ref == $ldap) ? "not ok 2\n" : "ok 2\n"; } print $::destroy ? "not ok 3\n" : "ok 3\n"; $ref = undef; print +($mesg->code == LDAP_UNAVAILABLE) ? "ok 4\n" : "not ok 4\n"; undef $mesg; print $::destroy ? "ok 5\n" : "not ok 5\n"; package Net::LDAP::Dummy; use IO::File; BEGIN { @ISA = qw(Net::LDAP); } sub connect_ldap { my $ldap = shift; $ldap->{net_ldap_socket} = IO::File->new("+> $devnull"); } sub DESTROY { my $self = shift; $::destroy = 1 unless tied(%$self); $self->SUPER::DESTROY; } |
From: Graham B. <gb...@us...> - 2003-06-06 22:47:17
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory sc8-pr-cvs1:/tmp/cvs-serv22500/lib/Net/LDAP Modified Files: Message.pm Log Message: Fix reference loop problem by hiding the real object behind a tied hash and only using the inner hash internally and the outer hash externally Index: Message.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/Message.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Message.pm 20 May 2003 14:56:04 -0000 1.7 +++ Message.pm 6 Jun 2003 22:47:14 -0000 1.8 @@ -10,7 +10,7 @@ use strict; use vars qw($VERSION); -$VERSION = "1.06"; +$VERSION = "1.07"; my $MsgID = 0; @@ -23,7 +23,7 @@ sub new { my $self = shift; my $type = ref($self) || $self; - my $parent = shift; + my $parent = shift->inner; my $arg = shift; $self = bless { @@ -206,7 +206,7 @@ sub pdu { shift->{pdu} } sub callback { shift->{callback} } -sub parent { shift->{parent} } +sub parent { shift->{parent}->outer } sub mesg_id { shift->{mesgid} } sub is_error { shift->code } |
From: Graham B. <gb...@us...> - 2003-06-06 22:47:17
|
Update of /cvsroot/perl-ldap/ldap/lib/Net In directory sc8-pr-cvs1:/tmp/cvs-serv22500/lib/Net Modified Files: LDAP.pm Log Message: Fix reference loop problem by hiding the real object behind a tied hash and only using the inner hash internally and the outer hash externally Index: LDAP.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP.pm,v retrieving revision 1.53 retrieving revision 1.54 diff -u -d -r1.53 -r1.54 --- LDAP.pm 19 May 2003 22:36:10 -0000 1.53 +++ LDAP.pm 6 Jun 2003 22:47:13 -0000 1.54 @@ -7,6 +7,7 @@ use strict; use IO::Socket; use IO::Select; +use Tie::Hash; use vars qw($VERSION $LDAP_VERSION @ISA); use Convert::ASN1 qw(asn_read); use Net::LDAP::Message; @@ -23,10 +24,11 @@ LDAP_SERVER_DOWN LDAP_USER_CANCELED LDAP_EXTENSION_START_TLS + LDAP_UNAVAILABLE ); -$VERSION = "0.28"; -@ISA = qw(Net::LDAP::Extra); +$VERSION = "0.28_01"; +@ISA = qw(Tie::StdHash Net::LDAP::Extra); $LDAP_VERSION = 3; # default LDAP protocol version # Net::LDAP::Extra will only exist is someone use's the module. But we need @@ -124,7 +126,7 @@ $obj->debug($arg->{debug} || 0 ); - $obj; + $obj->outer; } sub connect_ldap { @@ -802,7 +804,9 @@ sub _drop_conn { my ($self, $err, $etxt) = @_; - delete $self->{net_ldap_socket}; + my $sock = delete $self->{net_ldap_socket}; + close($sock) if $sock; + if (my $msgs = delete $self->{net_ldap_mesg}) { foreach my $mesg (values %$msgs) { $mesg->set_error($err, $etxt); @@ -964,6 +968,30 @@ @_ ? ($ldap->{net_ldap_version},$ldap->{net_ldap_version} = shift)[0] : $ldap->{net_ldap_version}; +} + +sub outer { + my $self = shift; + return $self if tied(%$self); + my %outer; + tie %outer, ref($self), $self; + ++$self->{net_ldap_refcnt}; + bless \%outer, ref($self); +} + +sub inner { + tied(%{$_[0]}) || $_[0]; +} + +sub TIEHASH { + $_[1]; +} + +sub DESTROY { + my $ldap = shift; + my $inner = tied(%$ldap) or return; + _drop_conn($inner, LDAP_UNAVAILABLE, "Implicit disconnect") + unless --$inner->{net_ldap_refcnt}; } 1; |
From: Graham B. <gb...@us...> - 2003-06-02 15:13:20
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory sc8-pr-cvs1:/tmp/cvs-serv13441/lib/Net/LDAP Modified Files: Constant.pm Log Message: Support :all to export all constants (not recoomended but for backwards complatability) Index: Constant.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/Constant.pm,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Constant.pm 20 May 2003 14:58:49 -0000 1.8 +++ Constant.pm 2 Jun 2003 15:13:10 -0000 1.9 @@ -4,7 +4,7 @@ package Net::LDAP::Constant; -$VERSION = "0.01"; +$VERSION = "0.02"; use Carp; @@ -15,7 +15,8 @@ my $callpkg = caller(0); _find(@_); my $oops; - foreach my $sym (@_) { + my $all = grep /:all/, @_; + foreach my $sym ($all ? keys %const : @_) { if (my $sub = $const{$sym}) { *{$callpkg . "::$sym"} = $sub; } @@ -30,11 +31,12 @@ sub _find { if (my @need = grep { ! $const{$_} } @_) { my %need; @need{@need} = (); + my $all = exists $need{':all'}; seek(DATA,0,0); local $/=''; # paragraph mode local $_; while(<DATA>) { - next unless /^=item\s+(LDAP_\S+)\s+\((.*)\)/ and exists $need{$1}; + next unless /^=item\s+(LDAP_\S+)\s+\((.*)\)/ and ($all or exists $need{$1}); my ($name, $value) = ($1,$2); delete $need{$name}; $const{$name} = sub () { $value }; |
From: Chris R. <chr...@us...> - 2003-05-23 07:07:34
|
Update of /cvsroot/perl-ldap/ldap/lib/Net In directory sc8-pr-cvs1:/tmp/cvs-serv21696/lib/Net Modified Files: LDAP.pod Log Message: Minor typo in modify:add description Index: LDAP.pod =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP.pod,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- LDAP.pod 22 May 2003 12:16:57 -0000 1.31 +++ LDAP.pod 23 May 2003 07:07:31 -0000 1.32 @@ -429,7 +429,7 @@ =item add -The B<add> option should be a reference to a HASH. The values of the +The B<add> option should be a reference to a HASH. The keys of the HASH are the attributes to add, and the values may be a string or a reference to a list of values. |
From: Chris R. <chr...@us...> - 2003-05-22 13:32:49
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory sc8-pr-cvs1:/tmp/cvs-serv28331/lib/Net/LDAP Modified Files: FAQ.pod Log Message: Use ->new for all constructor examples Index: FAQ.pod =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/FAQ.pod,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- FAQ.pod 7 May 2003 11:03:13 -0000 1.29 +++ FAQ.pod 22 May 2003 12:32:13 -0000 1.30 @@ -988,7 +988,7 @@ local $/ = undef; my $jpeg = <$filename>; - my $ldap = new Net::LDAP(...); + my $ldap = Net::LDAP->new(...); my $res = $ldap->bind(...); $res = $ldap->modify(..., add => [ 'jpegPhoto' => [ $jpeg ] ]); @@ -1014,7 +1014,7 @@ local $/ = undef; my $jpeg = <$filename>; - my $ldap = new Net::LDAP(...); + my $ldap = Net::LDAP->new(...); my $res = $ldap->bind(...); $res = $ldap->modify(..., add => [ 'jpegPhoto' => [ $jpeg ] ]); @@ -1113,7 +1113,7 @@ $ADS_RIGHT_EXCH_MAIL_SEND_AS | $ADS_RIGHT_EXCH_MODIFY_USER_ATT; - $exch = new Net::LDAP('server', debug =>0) || die $@; + $exch = Net::LDAP->new('server', debug =>0) || die $@; $exch->bind( 'cn=admin_user,cn=nt_domain,cn=admin', version =>3, password=>'password'); |
From: Chris R. <chr...@us...> - 2003-05-22 12:22:56
|
Update of /cvsroot/perl-ldap/ldap/lib/Net In directory sc8-pr-cvs1:/tmp/cvs-serv21848/lib/Net Modified Files: LDAP.pod LDAPI.pm LDAPS.pm Log Message: Use ->new for all constructor examples Index: LDAP.pod =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP.pod,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- LDAP.pod 22 May 2003 09:24:23 -0000 1.30 +++ LDAP.pod 22 May 2003 12:16:57 -0000 1.31 @@ -784,7 +784,7 @@ decryptkey to a reference to a subroutine that returns the decrypting key. For example: - $ldap = new Net::LDAP('myhost.example.com', version => 3); + $ldap = Net::LDAP->new('myhost.example.com', version => 3); $ldap->start_tls(verify => 'require', clientcert => 'mycert.pem', clientkey => 'mykey.pem', Index: LDAPI.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAPI.pm,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- LDAPI.pm 22 May 2003 09:24:24 -0000 1.4 +++ LDAPI.pm 22 May 2003 12:16:57 -0000 1.5 @@ -26,12 +26,12 @@ use Net::LDAPI; - $ldapi = new Net::LDAPI('/var/lib/ldapi'); + $ldapi = Net::LDAPI->new('/var/lib/ldapi'); # alternate way use Net::LDAP; - $ldapi = new Net::LDAP('ldapi://'); + $ldapi = Net::LDAP->new('ldapi://'); =head1 DESCRIPTION Index: LDAPS.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAPS.pm,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- LDAPS.pm 22 May 2003 09:24:24 -0000 1.16 +++ LDAPS.pm 22 May 2003 12:16:57 -0000 1.17 @@ -26,17 +26,17 @@ use Net::LDAPS; - $ldaps = new Net::LDAPS('myhost.example.com', - port => '10000', - verify => 'require', - capath => '/usr/local/cacerts/'); + $ldaps = Net::LDAPS->new('myhost.example.com', + port => '10000', + verify => 'require', + capath => '/usr/local/cacerts/'); # alternate way use Net::LDAP; - $ldaps = new Net::LDAP('ldaps://myhost.example.com:10000', - verify => 'require', - capath => '/usr/local/cacerts/'); + $ldaps = Net::LDAP->new('ldaps://myhost.example.com:10000', + verify => 'require', + capath => '/usr/local/cacerts/'); =head1 DESCRIPTION |
From: Chris R. <chr...@us...> - 2003-05-22 09:24:27
|
Update of /cvsroot/perl-ldap/ldap/lib/Net In directory sc8-pr-cvs1:/tmp/cvs-serv7386/lib/Net Modified Files: LDAP.pod LDAPS.pm LDAPI.pm Log Message: Moved guts of LDAP[SI] doc into LDAP.pod Index: LDAP.pod =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP.pod,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- LDAP.pod 9 May 2003 18:19:54 -0000 1.29 +++ LDAP.pod 22 May 2003 09:24:23 -0000 1.30 @@ -62,7 +62,7 @@ C<HOST> may be a host name or an IP number. TCP port may be specified after the host name followed by a colon (such as localhost:10389). The -default TCP port is 389. +default TCP port for LDAP is 389. You can also specify a URI, such as 'ldaps://127.0.0.1:666' or 'ldapi://%2fvar%2flib%2fldap_sock'. Note that '%2f's in the LDAPI @@ -140,9 +140,9 @@ =item version -Set the protocol version being used (default is LDAPv2). This is -useful if you want to avoid sending a bind operation and therefore -have to use LDAPv3. +Set the protocol version being used (default is LDAPv3). This is +useful if you want to talk to an old server and therefore have to use +LDAPv2. =back @@ -150,6 +150,14 @@ $ldap = Net::LDAP->new('remote.host', async => 1); +LDAPS connections have some extra valid options, see the +L<start_tls|start_tls> method for details. Note the default value for +'sslversion' for LDAPS is 'sslv2/3', and the default port for LDAPS +is 636. + +For LDAPI connections, HOST is actually the location of a UNIX domain +socket to connect to. The default location is '/var/lib/ldapi'. + =back =head1 METHODS @@ -726,10 +734,14 @@ =item start_tls ( [ OPTIONS ] ) -Calling this method will convert the connection to using Transport -Layer Security (TLS), which potentially provides an encrypted -connection. This is I<only> possible if the connection is using -LDAPv3. OPTIONS is a number of key-value pairs which describe how to +Calling this method will convert the existing connection to using +Transport Layer Security (TLS), which provides an encrypted +connection. This is I<only> possible if the connection uses LDAPv3, +and requires that the server advertizes support for +LDAP_EXTENSION_START_TLS. Use +L<Net::LDAP::RootDSE/supported_extension> to check this. + +OPTIONS is a number of key-value pairs which describe how to configure the security of the connection: =over 4 Index: LDAPS.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAPS.pm,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- LDAPS.pm 8 May 2003 19:46:23 -0000 1.15 +++ LDAPS.pm 22 May 2003 09:24:24 -0000 1.16 @@ -31,23 +31,24 @@ verify => 'require', capath => '/usr/local/cacerts/'); -=head1 DESCRIPTION + # alternate way + use Net::LDAP; -Communicate using the LDAP protocol to a directory server using a -potentially encrypted (SSL) network connection. + $ldaps = new Net::LDAP('ldaps://myhost.example.com:10000', + verify => 'require', + capath => '/usr/local/cacerts/'); -This class is a subclass of Net::LDAP so all the normal Net::LDAP -methods can be used with a Net::LDAPS object; see the documentation -for Net::LDAP to find out how to query a directory server using the -LDAP protocol. +=head1 DESCRIPTION -Note that the use of LDAPS is not recommended, because it is not -described by any IETF documents. Instead, you should consider using -LDAPv3 with the TLS extension defined in RFC 2830. This will give you -the same functionality as LDAPS, but using recognized standards. -Unfortunately servers may support LDAPS but not the TLS extension. See +Communicate using the LDAP protocol to a directory server using an +encrypted (SSL) network connection. This mechanism is non-standard but +widely supported; consider using LDAPv3 with the standard TLS +extension if possible (many servers do not support it yet.) See L<Net::LDAP/start_tls>. +All the normal C<Net::LDAP> methods can be used with a C<Net::LDAPS> +object; see L<Net::LDAP> for details. + =head1 CONSTRUCTOR =over 4 @@ -55,98 +56,7 @@ =item new ( HOST [, OPTIONS ] ) Create a new connection. HOST is the hostname to contact. OPTIONS is a -number of key/value pairs - additional keys to those understood by -Net::LDAP::new are: - -=over 4 - -=item verify - -How to verify the server's certificate, either 'none' (the server may -provide a certificate but it will not be checked - this may mean you -are be connected to the wrong server), 'optional' (verify if the -server offers a certificate), or 'require' (the server must provide a -certificate, and it must be valid.) If you set verify to optional or -require, you must also set either cafile or capath. The most secure -option is 'require'. - -=item sslversion - -This defines the version of the SSL/TLS protocol to use. Defaults to -'sslv2/3', other possible values are 'sslv2', 'sslv3', and 'tlsv1'. - -=item ciphers - -Specify which subset of cipher suites are permissible for this -connection, using the standard OpenSSL string format. The default -value for ciphers is 'ALL', which permits all ciphers, even those that -don't encrypt! - -=item clientcert - -=item clientkey - -=item keydecrypt - -If you want to use the client to offer a certificate to the server for -SSL authentication (which is not the same as for the LDAP Bind -operation) then set clientcert to the user's certificate file, and -clientkey to the user's private key file. These files B<must> be in -PEM format. - -If the private key is encrypted (highly recommended!) then set -keydecrypt to a reference to a subroutine that returns the decrypting -key. For example: - - $ldaps = new Net::LDAPS('myhost.example.com', - port => '636', - verify => 'require', - clientcert => 'mycert.pem', - clientkey => 'mykey.pem', - keydecrypt => sub { 'secret'; }, - capath => '/usr/local/cacerts/'); - -=item capath - -=item cafile - -When verifying the server's certificate, either set capath to the -pathname of the directory containing CA certificates, or set cafile to -the filename containing the certificate of the CA who signed the -server's certificate. These certificates B<must> all be in PEM format. - -The directory in 'capath' must contain certificates named using the -hash value of the certificates' subject names. To generate these -names, use OpenSSL like this in Unix: - - ln -s cacert.pem `openssl x509 -hash -noout < cacert.pem`.0 - -(assuming that the certificate of the CA is in cacert.pem.) - -=back - -=back - -=head1 ADDITIONAL METHODS - -=over 4 - -=item cipher - -Returns the cipher mode being used by the connection, in the string -format used by OpenSSL. - -=item certificate - -Returns an X509_Certificate object containing the server's -certificate. See the IO::Socket::SSL documentation for information -about this class. - -For example, to get the subject name (in a peculiar OpenSSL-specific -format, different from RFC 1779 and RFC 2253) from the server's -certificate, do this: - - print "Subject DN: " . $ldaps->certificate->subject_name . "\n"; +number of key/value pairs. See L<Net::LDAP/new> for details. =back Index: LDAPI.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAPI.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- LDAPI.pm 8 May 2003 19:46:23 -0000 1.3 +++ LDAPI.pm 22 May 2003 09:24:24 -0000 1.4 @@ -26,17 +26,21 @@ use Net::LDAPI; - $ldaps = new Net::LDAPI('/var/lib/ldapi'); + $ldapi = new Net::LDAPI('/var/lib/ldapi'); + + # alternate way + use Net::LDAP; + + $ldapi = new Net::LDAP('ldapi://'); =head1 DESCRIPTION -Communicate using the LDAP protocol to a directory server using a -UNIX domain socket. +Communicate using the LDAP protocol to a directory server using a UNIX +domain socket. This mechanism is non-standard, UNIX-specific and not +widely supported. -This class is a subclass of Net::LDAP so all the normal Net::LDAP -methods can be used with a Net::LDAPI object; see the documentation -for Net::LDAP to find out how to query a directory server using the -LDAP protocol. +All the normal C<Net::LDAP> methods can be used with a C<Net::LDAPI> +object; see L<Net::LDAP> for details. =head1 CONSTRUCTOR @@ -44,9 +48,9 @@ =item new ( [SOCKPATH] ) -Create a new connection. SOCKPATH can optionally be specified, to specify -the location of the UNIX domain socket to connect to. By default, the -domain socket path is '/var/lib/ldapi'. This is OpenLDAP-specific. +Create a new connection. SOCKPATH can optionally be specified, to +specify the location of the UNIX domain socket to connect to. See +L<Net::LDAP/new> for details. =back |
From: Graham B. <gb...@us...> - 2003-05-21 08:10:57
|
Update of /cvsroot/perl-ldap/ldap/t In directory sc8-pr-cvs1:/tmp/cvs-serv9297/t Modified Files: 53schema.t Added Files: 03schema.t Log Message: Rename the existing schema test to 03schema.t as it does not require a server. Add new 53schema.t which obtains a schema from a server --- NEW FILE: 03schema.t --- #!perl -w use Net::LDAP::Schema; print "1..7\n"; my $schema = Net::LDAP::Schema->new( "data/schema.in" ) or die "Cannot open schema"; print "ok 1\n"; my @atts = $schema->all_attributes(); print "not " unless @atts == 55; print "ok 2\n"; print "The schema contains ", scalar @atts, " attributes\n"; my @ocs = $schema->all_objectclasses(); print "not " unless @ocs == 22; print "ok 3\n"; print "The schema contains ", scalar @ocs, " object classes\n"; @atts = $schema->must( "person" ); print "not " unless join(' ', sort map $_->{name}, @atts) eq join(' ',sort qw(cn sn objectClass)); print "ok 4\n"; print "The 'person' OC must have these attributes [", join( ",", map $_->{name}, @atts ), "]\n"; @atts = $schema->may( "mhsOrganizationalUser" ); print "not " if @atts; print "ok 5\n"; print "The 'mhsOrganizationalUser' OC may have these attributes [", join( ",", map $_->{name}, @atts ), "]\n"; print "not " if defined $schema->attribute('distinguishedName')->{max_length}; print "ok 6\n"; print "not " unless $schema->attribute('userPassword')->{max_length} == 128; print "ok 7\n"; use Data::Dumper; print Dumper($schema); Index: 53schema.t =================================================================== RCS file: /cvsroot/perl-ldap/ldap/t/53schema.t,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- 53schema.t 4 Feb 2002 18:59:02 -0000 1.4 +++ 53schema.t 21 May 2003 08:10:54 -0000 1.5 @@ -1,40 +1,19 @@ -#!perl -w -use Net::LDAP::Schema; - -print "1..7\n"; - -my $schema = Net::LDAP::Schema->new( "data/schema.in" ) or die "Cannot open schema"; -print "ok 1\n"; - -my @atts = $schema->all_attributes(); -print "not " unless @atts == 55; -print "ok 2\n"; +#!perl -print "The schema contains ", scalar @atts, " attributes\n"; +BEGIN { + require "t/common.pl"; + start_server(version => 3); +} -my @ocs = $schema->all_objectclasses(); -print "not " unless @ocs == 22; -print "ok 3\n"; -print "The schema contains ", scalar @ocs, " object classes\n"; +print "1..4\n"; -@atts = $schema->must( "person" ); -print "not " unless join(' ', sort map $_->{name}, @atts) eq join(' ',sort qw(cn sn objectClass)); -print "ok 4\n"; -print "The 'person' OC must have these attributes [", - join( ",", map $_->{name}, @atts ), - "]\n"; -@atts = $schema->may( "mhsOrganizationalUser" ); -print "not " if @atts; -print "ok 5\n"; -print "The 'mhsOrganizationalUser' OC may have these attributes [", - join( ",", map $_->{name}, @atts ), - "]\n"; +$ldap = client(); +ok($ldap, "client"); -print "not " if defined $schema->attribute('distinguishedName')->{max_length}; -print "ok 6\n"; +$schema = $ldap->schema; +ok($schema, "schema"); -print "not " unless $schema->attribute('userPassword')->{max_length} == 128; -print "ok 7\n"; +$ob = $schema->attribute('objectClass'); +ok($ob, 'objectClass'); -use Data::Dumper; -print Dumper($schema); +ok($ob->{syntax} eq '1.3.6.1.4.1.1466.115.121.1.38', 'syntax'); |
From: Graham B. <gb...@us...> - 2003-05-21 08:10:56
|
Update of /cvsroot/perl-ldap/ldap In directory sc8-pr-cvs1:/tmp/cvs-serv9297 Modified Files: MANIFEST Log Message: Rename the existing schema test to 03schema.t as it does not require a server. Add new 53schema.t which obtains a schema from a server Index: MANIFEST =================================================================== RCS file: /cvsroot/perl-ldap/ldap/MANIFEST,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- MANIFEST 9 May 2003 12:05:09 -0000 1.23 +++ MANIFEST 21 May 2003 08:10:53 -0000 1.24 @@ -88,6 +88,7 @@ t/00ldif-entry.t t/01canon_dn.t t/02filter.t +t/03schema.t t/50populate.t t/51search.t t/52modify.t |
From: Chris R. <chr...@us...> - 2003-05-20 15:14:15
|
Update of /cvsroot/perl-ldap/website In directory sc8-pr-cvs1:/tmp/cvs-serv17026 Modified Files: index.html Log Message: Added LDAPI Index: index.html =================================================================== RCS file: /cvsroot/perl-ldap/website/index.html,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- index.html 20 May 2003 07:35:14 -0000 1.40 +++ index.html 20 May 2003 15:05:40 -0000 1.41 @@ -69,6 +69,8 @@ <dd>Lightweight Directory Access Protocol</dd> <dt><a name="Net::LDAPS" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAPS.pm">Net::LDAPS</a></dt> <dd>Use LDAP over an SSL connection</dd> + <dt><a name="Net::LDAPI" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAPI.pm">Net::LDAPI</a></dt> + <dd>Use LDAP over a UNIX-domain socket</dd> <dt><a name="Net::LDAP::Message" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/Message.pod">Net::LDAP::Message</a></dt> <dd>Message response from LDAP server</dd> <dt><a name="Net::LDAP::Search" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/Search.pod">Net::LDAP::Search</a></dt> |
From: Chris R. <chr...@us...> - 2003-05-20 14:58:53
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory sc8-pr-cvs1:/tmp/cvs-serv11835/lib/Net/LDAP Modified Files: Constant.pm Util.pm Log Message: Extended ldap_error_name, ldap_error_text and ldap_error_desc to take Message args Index: Constant.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/Constant.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Constant.pm 8 May 2003 12:53:08 -0000 1.7 +++ Constant.pm 20 May 2003 14:58:49 -0000 1.8 @@ -53,12 +53,12 @@ } # These subs are really in Net::LDAP::Util, but need to access <DATA> -# so its esier for them to be here. +# so its easier for them to be here. my @err2name; sub Net::LDAP::Util::ldap_error_name { - my $code = 0 + shift; + my $code = 0 + (ref($_[0]) ? $_[0]->code : $_[0]); unless (@err2name) { seek(DATA,0,0); @@ -76,7 +76,7 @@ sub Net::LDAP::Util::ldap_error_text { - my $code = 0 + shift; + my $code = 0 + (ref($_[0]) ? $_[0]->code : $_[0]); my $text; seek(DATA,0,0); Index: Util.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/Util.pm,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- Util.pm 8 May 2003 09:27:41 -0000 1.17 +++ Util.pm 20 May 2003 14:58:49 -0000 1.18 @@ -18,7 +18,7 @@ $mesg = $ldap->search( .... ); - die "Error ",ldap_error_name($mesg->code) if $mesg->code; + die "Error ",ldap_error_name($mesg) if $mesg->code; =head1 DESCRIPTION @@ -44,28 +44,33 @@ ); $VERSION = "0.10"; -=item ldap_error_name ( NUM ) +=item ldap_error_name ( ERR ) -Returns the name corresponding with the error number passed in. If the -error is not known the a string in the form C<"LDAP error code %d(0x%02X)"> -is returned. +Returns the name corresponding with ERR. ERR can either be an LDAP +error number, or a C<Net::LDAP::Message> object containing an error +code. If the error is not known the a string in the form C<"LDAP error +code %d(0x%02X)"> is returned. =cut # Defined in Constant.pm -=item ldap_error_text ( NUM ) +=item ldap_error_text ( ERR ) -Returns the text from the POD description for the given error. If the -error code given is unknown then C<undef> is returned. +Returns the text from the POD description for the given error. ERR can +either be an LDAP error code, or a C<Net::LDAP::Message> object +containing an LDAP error code. If the error code given is unknown then +C<undef> is returned. =cut # Defined in Constant.pm -=item ldap_error_desc ( NUM ) +=item ldap_error_desc ( ERR ) -Returns a short text description of the error. +Returns a short text description of the error. ERR can either be an +LDAP error code or a C<Net::LDAP::Message> object containing an LDAP +error code. =cut @@ -171,7 +176,7 @@ ); sub ldap_error_desc { - my $code = shift; + my $code = (ref($_[0]) ? $_[0]->code : $_[0]); $err2desc[$code] || sprintf("LDAP error code %d(0x%02X)",$code,$code); } |
From: Chris R. <chr...@us...> - 2003-05-20 14:56:09
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory sc8-pr-cvs1:/tmp/cvs-serv10741/lib/Net/LDAP Modified Files: Message.pm Message.pod Log Message: Added error_name, error_text and error_desc methods Index: Message.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/Message.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Message.pm 6 May 2003 16:46:02 -0000 1.6 +++ Message.pm 20 May 2003 14:56:04 -0000 1.7 @@ -101,6 +101,18 @@ $self; } +sub error_name { + Net::LDAP::Util::ldap_error_name(shift->code); +} + +sub error_text { + Net::LDAP::Util::ldap_error_text(shift->code); +} + +sub error_desc { + Net::LDAP::Util::ldap_error_desc(shift->code); +} + sub sync { my $self = shift; my $ldap = $self->{parent}; Index: Message.pod =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/Message.pod,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Message.pod 7 May 2003 11:11:04 -0000 1.6 +++ Message.pod 20 May 2003 14:56:04 -0000 1.7 @@ -51,10 +51,30 @@ =item error -The error message in the result message from the server. If the server did -not include an error message, then the result of -L<ldap_error_desc|Net::LDAP::Util/ldap_error_desc> with the -error code from the result message. +Returns the error message in the result message from the server. If +the server did not include an error message, then the result of +L<ldap_error_desc|Net::LDAP::Util/ldap_error_desc> with the error code +from the result message. + +=item error_name + +Returns the name of the error code in the result message from the +server. See L<ldap_error_name|Net::LDAP::Util::ldap_error_name> for a +detailed description of the return value. + +=item error_text + +Returns the short text description of the error code in the result +message from the server. See +L<ldap_error_text|Net::LDAP::Util::ldap_error_text> for a detailed +description of the return value. + +=item error_desc + +Returns a long text description of the error code in the result +message from the server. See +L<ldap_error_desc|Net::LDAP::Util::ldap_error_desc> for a detailed +description of the return value. =item is_error |
From: Chris R. <chr...@us...> - 2003-05-20 07:35:19
|
Update of /cvsroot/perl-ldap/website In directory sc8-pr-cvs1:/tmp/cvs-serv13833 Modified Files: index.html Log Message: Cut and paste error Index: index.html =================================================================== RCS file: /cvsroot/perl-ldap/website/index.html,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- index.html 20 May 2003 07:33:03 -0000 1.39 +++ index.html 20 May 2003 07:35:14 -0000 1.40 @@ -82,9 +82,9 @@ <dt><a name="Net::LDAP::LDIF" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/LDIF.pod">Net::LDAP::LDIF</a></dt> <dd>LDIF reading and writing</dd> <dt><a name="Net::LDAP::DSML" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/DSML.pm">Net::LDAP::DSML</a></dt> - <dd>Server information (RootDSE)</dd> - <dt><a name="Net::LDAP::RootDSE" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/RootDSE.pm">Net::LDAP::RootDSE</a></dt> <dd>DSML reading and writing</dd> + <dt><a name="Net::LDAP::RootDSE" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/RootDSE.pm">Net::LDAP::RootDSE</a></dt> + <dd>Server information (RootDSE)</dd> <dt><a name="Net::LDAP::Schema" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/Schema.pod">Net::LDAP::Schema</a></dt> <dd>Load and manipulate an LDAP v3 Schema</dd> <dt><a name="Net::LDAP::Constant" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/Constant.pod">Net::LDAP::Constant</a></dt> |
From: Chris R. <chr...@us...> - 2003-05-20 07:33:06
|
Update of /cvsroot/perl-ldap/website In directory sc8-pr-cvs1:/tmp/cvs-serv12602 Modified Files: index.html Log Message: Updated for 0.28 release Index: index.html =================================================================== RCS file: /cvsroot/perl-ldap/website/index.html,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- index.html 8 May 2003 08:46:59 -0000 1.38 +++ index.html 20 May 2003 07:33:03 -0000 1.39 @@ -51,8 +51,8 @@ </div> <div class="section"> <h2>Distribution</h2> - <p>The latest release of the library is <a href= - "http://prdownloads.sourceforge.net/perl-ldap/perl-ldap-0.2701.tar.gz"> perl-ldap-0.2701</a>. + <p>The latest (May 2003) release of the library is <a href= + "http://prdownloads.sourceforge.net/perl-ldap/perl-ldap-0.28.tar.gz"> perl-ldap-0.28</a>. You may also <a href= "http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/perl-ldap/ldap/">look at the individual files</a> in the CVS repository and the <a href= @@ -82,6 +82,8 @@ <dt><a name="Net::LDAP::LDIF" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/LDIF.pod">Net::LDAP::LDIF</a></dt> <dd>LDIF reading and writing</dd> <dt><a name="Net::LDAP::DSML" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/DSML.pm">Net::LDAP::DSML</a></dt> + <dd>Server information (RootDSE)</dd> + <dt><a name="Net::LDAP::RootDSE" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/RootDSE.pm">Net::LDAP::RootDSE</a></dt> <dd>DSML reading and writing</dd> <dt><a name="Net::LDAP::Schema" href="http://search.cpan.org/~gbarr/perl-ldap/lib/Net/LDAP/Schema.pod">Net::LDAP::Schema</a></dt> <dd>Load and manipulate an LDAP v3 Schema</dd> |
From: Graham B. <gb...@us...> - 2003-05-19 22:37:17
|
Update of /cvsroot/perl-ldap/ldap In directory sc8-pr-cvs1:/tmp/cvs-serv13732 Modified Files: ChangeLog Log Message: Index: ChangeLog =================================================================== RCS file: /cvsroot/perl-ldap/ldap/ChangeLog,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- ChangeLog 9 May 2003 12:08:04 -0000 1.28 +++ ChangeLog 19 May 2003 22:37:14 -0000 1.29 @@ -1,3 +1,61 @@ +2003-05-19 23:36 Graham Barr + + * RELEASE_NOTES, lib/Net/LDAP.pm: + + Release 0.28 + +2003-05-19 23:28 Graham Barr + + * lib/Net/LDAP.pm: + + Fix url host extraction + +2003-05-19 22:50 Graham Barr + + * t/common.pl: + + change \1 to $1 in substitution + +2003-05-19 16:08 Graham Barr + + * lib/Net/LDAP.pm: + + pass undef instead of '' for initial SASL credentials + +2003-05-09 19:19 Chris Ridd + + * lib/Net/LDAP.pod: + + Minor typos fixed + +2003-05-09 17:56 Graham Barr + + * lib/Net/LDAP.pod: + + Add docs about new URLs passing to ->new + Patch from Ziya Suzen + +2003-05-09 17:56 Graham Barr + + * lib/Net/LDAP.pm: + + Fix bug in URL parsing when the host contains a port. + Patch from Ziya Suzen + +2003-05-09 15:58 Graham Barr + + * data/50-cmp.ldif, data/51b-cmp.ldif, data/51c-cmp.ldif, + data/51d-cmp.ldif, data/52-cmp.ldif, t/common.pl: + + Testcase tweaks to cope with differences between different openldap + server versions. Tested with 1.2.11 2.0.27 and 2.1.19 + +2003-05-09 14:32 Chris Ridd + + * lib/Net/LDAP.pod: + + Added note about root DSE getting uncached + 2003-05-09 13:05 Graham Barr * MANIFEST, lib/Net/LDAP.pm, lib/Net/LDAP.pod, t/54dse.t: |
From: Graham B. <gb...@us...> - 2003-05-19 22:36:13
|
Update of /cvsroot/perl-ldap/ldap/lib/Net In directory sc8-pr-cvs1:/tmp/cvs-serv13031/lib/Net Modified Files: LDAP.pm Log Message: Release 0.28 Index: LDAP.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP.pm,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- LDAP.pm 19 May 2003 22:28:06 -0000 1.52 +++ LDAP.pm 19 May 2003 22:36:10 -0000 1.53 @@ -25,7 +25,7 @@ LDAP_EXTENSION_START_TLS ); -$VERSION = "0.2702"; +$VERSION = "0.28"; @ISA = qw(Net::LDAP::Extra); $LDAP_VERSION = 3; # default LDAP protocol version |
From: Graham B. <gb...@us...> - 2003-05-19 22:36:13
|
Update of /cvsroot/perl-ldap/ldap In directory sc8-pr-cvs1:/tmp/cvs-serv13031 Modified Files: RELEASE_NOTES Log Message: Release 0.28 Index: RELEASE_NOTES =================================================================== RCS file: /cvsroot/perl-ldap/ldap/RELEASE_NOTES,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- RELEASE_NOTES 27 Jan 2003 16:33:15 -0000 1.12 +++ RELEASE_NOTES 19 May 2003 22:36:10 -0000 1.13 @@ -1,3 +1,16 @@ +perl-ldap 0.28 19 May 2003 +========================== + +* Net::LDAP::Entry object can now be cloned +* New class Net::LDAP::RootDSE +* Net::LDAP->new can now accept URLs for the host +* Added support for ldapi: +* Now supports Notice of disconnection +* Net::LDAP::Constant now implements its own import function, it no + longer inherits from Exporter. So :all and /^LDAP_CONTROL/ etc + are no longer valid arguments for import. The result is that + Net::LDAP::Constant only defined the subs that are needed. + perl-ldap 0.27 27 Jan 2003 ========================== |
From: Graham B. <gb...@us...> - 2003-05-19 22:28:10
|
Update of /cvsroot/perl-ldap/ldap/lib/Net In directory sc8-pr-cvs1:/tmp/cvs-serv6648/lib/Net Modified Files: LDAP.pm Log Message: Fix url host extraction Index: LDAP.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP.pm,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- LDAP.pm 19 May 2003 15:08:05 -0000 1.51 +++ LDAP.pm 19 May 2003 22:28:06 -0000 1.52 @@ -103,7 +103,7 @@ my $scheme = $arg->{scheme} || 'ldap'; (my $h = $uri) =~ s,^(\w+)://,, and $scheme = $1; my $meth = $obj->can("connect_$scheme") or next; - $h =~ s,^//([^/]*).*,$1,; # Extract host + $h =~ s,/.*,,; # remove path part $h =~ s/%([A-Fa-f0-9]{2})/chr(hex($1))/eg; # unescape if (&$meth($obj, $h, $arg)) { $obj->{net_ldap_uri} = $uri; |
From: Graham B. <gb...@us...> - 2003-05-19 21:50:45
|
Update of /cvsroot/perl-ldap/ldap/t In directory sc8-pr-cvs1:/tmp/cvs-serv8009/t Modified Files: common.pl Log Message: change \1 to $1 in substitution Index: common.pl =================================================================== RCS file: /cvsroot/perl-ldap/ldap/t/common.pl,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- common.pl 9 May 2003 14:58:42 -0000 1.8 +++ common.pl 19 May 2003 21:50:42 -0000 1.9 @@ -77,7 +77,7 @@ while(<CONFI>) { s/\$([A-Z]\w*)/${$1}/g; s/^TLS/#TLS/ unless $SSL_PORT; - s/^(sasl.*)/#\1/ unless $SASL; + s/^(sasl.*)/#$1/ unless $SASL; print CONFO; } close(CONFI); |