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: Clif H. <ch...@us...> - 2002-12-03 02:35:57
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory sc8-pr-cvs1:/tmp/cvs-serv22487/ldap/lib/Net/LDAP Modified Files: FAQ.pod Log Message: Added section on what is a proper bind DN. Corrected some spelling errors. Index: FAQ.pod =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/FAQ.pod,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- FAQ.pod 15 Jul 2002 01:28:30 -0000 1.24 +++ FAQ.pod 3 Dec 2002 02:35:53 -0000 1.25 @@ -198,9 +198,9 @@ Example of a DN: - cn=Road Runner, ou=bird, dc=carton, dc=com - ou=bird, dc=carton, dc=com - dc=carton, dc=com + cn=Road Runner, ou=bird, dc=cartoon, dc=com + ou=bird, dc=cartoon, dc=com + dc=cartoon, dc=com dc=com =head2 What is a Relative Distinguished Name. @@ -214,12 +214,12 @@ Example of a DN: - cn=Road Runner,ou=bird,dc=carton,dc=com + cn=Road Runner,ou=bird,dc=cartoon,dc=com RDNs of the proceeding DN: RDN => cn=Road Runner RDN => ou=bird - RDN => dc=carton + RDN => dc=cartoon RDN => dc=com The RDNs are delimited by a comma. @@ -228,7 +228,7 @@ Example of a DN: - cn=Road Runner,ou=bird,dc=carton,dc=com + cn=Road Runner,ou=bird,dc=cartoon,dc=com Naming RDN of the proceeding DN: @@ -245,13 +245,13 @@ Example of a DN: - cn=Road Runner,ou=bird,dc=carton,dc=com + cn=Road Runner,ou=bird,dc=cartoon,dc=com Possible search base(s) for the proceeding DN: - Base => cn=Road Runner,ou=bird,dc=carton,dc=com - Base => ou=bird,dc=carton,dc=com - Base => dc=carton,dc=com + Base => cn=Road Runner,ou=bird,dc=cartoon,dc=com + Base => ou=bird,dc=cartoon,dc=com + Base => dc=cartoon,dc=com Base => dc=com Setting the search base to the lowest possible branch of @@ -439,6 +439,22 @@ The constructor will return undef if there was a problem connecting to the specified server. Any error message will be available in $@ + +=head2 What is the proper format of the bind DN. + +The DN used to bind to a LDAP or X.550 directory is a FULLY QUALIFIED DN. +The exact syntax of the DN will vary between LDAP or X.500 implementations. + +The following are valid examples. + +uid=clif,ou=People,dc=umich,dc=edu + +cn=directory manager,ou=admins,dc=umich,dc=edu + +In many LDAP and X.500 directory implementations the following +would be a valid fully qualified DN of the directory manager. + +cn=directory manager =head2 How can I tell when the server returns an error, bind() always returns true ? |
From: Clif H. <ch...@us...> - 2002-12-03 02:34:38
|
Update of /cvsroot/perl-ldap/website In directory sc8-pr-cvs1:/tmp/cvs-serv21298/website Modified Files: FAQ.html Log Message: Added section on what is a proper bind DN. Corrected some spelling errors. Index: FAQ.html =================================================================== RCS file: /cvsroot/perl-ldap/website/FAQ.html,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- FAQ.html 15 Jul 2002 01:23:25 -0000 1.12 +++ FAQ.html 3 Dec 2002 02:34:35 -0000 1.13 @@ -60,6 +60,7 @@ <LI><A HREF="#How_do_I_connect_to_my_server_">How do I connect to my server ?</A> <LI><A HREF="#Net_LDAP_new_sometimes_returns">Net::LDAP->new sometimes returns undef, why ?</A> + <LI><A HREF="#What_is_the_proper_format_of_the_bind_DN">What is the proper format of the bind DN.</A> <LI><A HREF="#How_can_I_tell_when_the_server_r">How can I tell when the server returns an error, bind() always returns</A> <LI><A HREF="#How_can_I_set_the_ldap_version_o">How can I set the ldap version of a connection to my ldap server?</A> <LI><A HREF="#I_did_a_search_on_my_directory_u">I did a search on my directory using the 'search' method. Where did</A> @@ -382,9 +383,9 @@ Example of a DN: <P> -<PRE> cn=Road Runner, ou=bird, dc=carton, dc=com - ou=bird, dc=carton, dc=com - dc=carton, dc=com +<PRE> cn=Road Runner, ou=bird, dc=cartoon, dc=com + ou=bird, dc=cartoon, dc=com + dc=cartoon, dc=com dc=com </PRE> <P> @@ -401,13 +402,13 @@ Example of a DN: <P> -<PRE> cn=Road Runner,ou=bird,dc=carton,dc=com +<PRE> cn=Road Runner,ou=bird,dc=cartoon,dc=com </PRE> <P> <PRE> RDNs of the proceeding DN: RDN => cn=Road Runner RDN => ou=bird - RDN => dc=carton + RDN => dc=cartoon RDN => dc=com </PRE> <P> @@ -420,7 +421,7 @@ Example of a DN: <P> -<PRE> cn=Road Runner,ou=bird,dc=carton,dc=com +<PRE> cn=Road Runner,ou=bird,dc=cartoon,dc=com </PRE> <P> <PRE> Naming RDN of the proceeding DN: @@ -443,15 +444,15 @@ Example of a DN: <P> -<PRE> cn=Road Runner,ou=bird,dc=carton,dc=com +<PRE> cn=Road Runner,ou=bird,dc=cartoon,dc=com </PRE> <P> Possible search <CODE>base(s)</CODE> for the proceeding DN: <P> -<PRE> Base => cn=Road Runner,ou=bird,dc=carton,dc=com - Base => ou=bird,dc=carton,dc=com - Base => dc=carton,dc=com +<PRE> Base => cn=Road Runner,ou=bird,dc=cartoon,dc=com + Base => ou=bird,dc=cartoon,dc=com + Base => dc=cartoon,dc=com Base => dc=com </PRE> <P> @@ -684,6 +685,23 @@ The constructor will return undef if there was a problem connecting to the specified server. Any error message will be available in $@ +<P> +<HR> +<H2><A NAME="What_is_the_proper_format_of_the_bind_DN">What is the proper format of the bind DN.</A></H2> +<P> +The DN used to bind to a LDAP or X.500 directory is a FULLY QUALIFIED DN. +The exact syntax of the DN will vary between LDAP or X.500 implementations. +<P> +The following are valid examples. +<P> +uid=clif,ou=People,dc=umich,dc=edu +<P> +cn=directory manager,ou=admins,dc=umich,dc=edu +<P> +In many LDAP and X.500 directory implementations the following +would be a valid fully qualified DN of the directory manager. +<P> +cn=directory manager <P> <HR> <H2><A NAME="How_can_I_tell_when_the_server_r">How can I tell when the server returns an error, bind() always returns |
From: Clif H. <ch...@us...> - 2002-11-06 04:27:40
|
Update of /cvsroot/perl-ldap/ldap/contrib In directory usw-pr-cvs1:/tmp/cvs-serv19481/ldap/contrib Modified Files: tklkup Log Message: Corrected a few pod errors that podchecker found. Index: tklkup =================================================================== RCS file: /cvsroot/perl-ldap/ldap/contrib/tklkup,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- tklkup 8 Oct 2002 01:41:31 -0000 1.29 +++ tklkup 6 Nov 2002 04:27:37 -0000 1.30 @@ -22,6 +22,10 @@ # # Revisions: # $Log$ +# Revision 1.30 2002/11/06 04:27:37 charden +# +# Corrected a few pod errors that podchecker found. +# # Revision 1.29 2002/10/08 01:41:31 charden # # Change the way search base(s) are displayed. Instead of one big list, @@ -4349,7 +4353,7 @@ There are 5 commands that can be used with this file; hand, attribute, server, limit, and port. - + hand -> values: left or right. Defines where the attribute label box will be place. @@ -4358,7 +4362,7 @@ port -> value: default is 389. User should set this to match their needs. - + nismapname -> Solaris Native LDAP uses nismapname to define the automounter directory branches. Default is to not use Solaris Native LDAP. Uncomment @@ -4413,8 +4417,8 @@ None of this is a problem if all of your servers have the same DIT layouts. Just define them with the same search base, there should be little or no delay - when switching to the new server. - + when switching to the new server. + Now a word about directory branch, or search base, detection. There are many things that can prevent this function from working properly. Several version 2 LDAP servers that this was tested @@ -4432,11 +4436,12 @@ script is still working is because search limit exceeded messages are displayed on the console that initiated the tklkup script. Who wants to wait a hour while the script figures this out. - + If you decide to use auto search base detection you will just have to try it and hope it works. -=back 4 +=back + ------------------------------------------------------------------- =head1 tklkup @@ -4466,7 +4471,7 @@ ldap connection will use the version I<3> protocol. To use ldap version I<2> protocol press the "RadioButton" diamond so that it becomes a gray color. - + The I<SELECT SERVER> button will activate a drop down menu. From the menu the user will select the "RadioButton" that corresponds to the directory server the @@ -4651,8 +4656,8 @@ ------------------------------------------------------------------- =head1 DIRECTORY SEARCH DISPLAY WINDOW - -I<DIRECTORY SEARCH DISPLAY> is the window where data for the + +I<DIRECTORY SEARCH DISPLAY> is the window where data for the selected DN is displayed. Data is displayed in the read only Directory Data text box. Associated with the Directory Data text box is the "RadioButton" that determines how often the @@ -4704,8 +4709,8 @@ Wrap -> When selected will prompt the user to choose how to do line wrapping in the Directory Data text box. - -The CLEAR DATA button will clear out the text that + +The CLEAR DATA button will clear out the text that appears in the Directory Data text box. =head2 JPEG Photo Display. @@ -4963,7 +4968,7 @@ Wrap -> When selected will prompt the user to choose how to do line wrapping in the Directory Data text box. - + The Clear Data button will clear out the text that appears in the Directory Schema Data text box. |
From: Kartik S. <kar...@us...> - 2002-11-03 01:47:53
|
Update of /cvsroot/perl-ldap/ldap/contrib In directory usw-pr-cvs1:/tmp/cvs-serv28810 Modified Files: ldifdiff.pl Log Message: Speeded up attribute value comparisons significantly. Index: ldifdiff.pl =================================================================== RCS file: /cvsroot/perl-ldap/ldap/contrib/ldifdiff.pl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ldifdiff.pl 22 Oct 2001 13:34:43 -0000 1.1 +++ ldifdiff.pl 3 Nov 2002 01:47:45 -0000 1.2 @@ -60,7 +60,7 @@ my $keyattr = $args{k}; my @sourceattrs = split(/,/, $args{a}); -my %ciscmp = (objectclass => 1, manager => 1, owner => 1); +my %ciscmp = (objectclass => 1, manager => 1, owner => 1, uniquemember => 1); foreach (split(/,/, $args{c})) { $ciscmp{$_} = 1 } @@ -80,8 +80,8 @@ $ldifout->{change} = 1; $ldifout->{wrap} = 78; - diff($source, $target); +exit; # Gets the relative distinguished name (RDN) attribute @@ -182,21 +182,12 @@ } } -sub grepval -{ - my ($val, $vals, $ciscmp) = @_; - - return $ciscmp ? grep(/^\Q$val\E$/i, @$vals) - : grep(/^\Q$val\E$/, @$vals); -} - - # Generate LDIF to update $target with information in $source. # Optionally restrict the set of attributes to consider. sub updateFromEntry { my ($source, $target, @attrs) = @_; - my (%modhash, $attr, $val, $ldifstr); + my ($attr, $val, $ldifstr); my %sharedattrs = (objectclass => 1); @@ -214,40 +205,44 @@ foreach $attr (@attrs) { my $lcattr = lc $attr; next if $lcattr eq 'dn'; # Can't handle modrdn here - if (!$source->exists($attr) && !$sharedattrs{$lcattr}) { - # Source doesn't have this attribute, delete it from the target - # if necessary. - $target->delete($attr) if $target->exists($attr); + + # Build lists of unique values in the source and target, to + # speed up comparisons. + my @sourcevals = $source->get_value($attr); + my @targetvals = $target->get_value($attr); + my (%sourceuniqvals, %targetuniqvals); + if ($ciscmp{$lcattr}) { + @sourceuniqvals{map { lc($_) } @sourcevals} = (); + @targetuniqvals{map { lc($_) } @targetvals} = (); } else { - my $replaceattr; - my @sourcevals = $source->get_value($attr); - my @targetvals = $target->get_value($attr); + @sourceuniqvals{@sourcevals} = (); + @targetuniqvals{@targetvals} = (); + } + foreach my $val (keys %sourceuniqvals) { + if (exists $targetuniqvals{$val}) { + delete $sourceuniqvals{$val}; + delete $targetuniqvals{$val}; + } + } + # Move on if there are no differences + next unless keys(%sourceuniqvals) || keys(%targetuniqvals); + + # Make changes as appropriate + if ($sharedattrs{$lcattr}) { # For 'shared' attributes (e.g. objectclass) where $source may not - # be a sole authoritative source, we issue issue 'delete' and - # 'add' modifications instead of a single 'replace'. - foreach $val (@targetvals) { - next if $val eq ''; # Skip attributes with empty values - if (!grepval($val, \@sourcevals, $ciscmp{$lcattr} ? 1 : 0)) { - if ($sharedattrs{$lcattr}) { - $target->delete($attr => [$val]); - } - else { $replaceattr = 1 } - } - } - foreach $val (@sourcevals) { - next if $val eq ''; # Skip attributes with empty values - if (!grepval($val, \@targetvals, $ciscmp{$lcattr} ? 1 : 0)) { - if ($sharedattrs{$lcattr}) { - $target->add($attr => $val); - } - else { $replaceattr = 1 } - } - } - # source is authoritative for this attribute, issue a replace. - $target->replace($attr => [ @sourcevals ]) - if !$sharedattrs{$lcattr} && $replaceattr; + # be a sole authoritative source, we issue separate delete and + # add modifications instead of a single replace. + $target->delete($attr => [ keys(%targetuniqvals) ]) + if keys(%targetuniqvals); + $target->add($attr => [ keys(%sourceuniqvals) ]) + if keys(%sourceuniqvals); + } + else { + # Issue a replace or delete as needed + if (@sourcevals) { $target->replace($attr => [ @sourcevals ]) } + else { $target->delete($attr) } } } |
From: Graham B. <gb...@us...> - 2002-10-24 13:08:10
|
Update of /cvsroot/perl-ldap/ldap/lib/Net In directory usw-pr-cvs1:/tmp/cvs-serv23308/lib/Net Modified Files: LDAP.pm LDAP.pod Log Message: Add multihomed to the options passed onto IO::Socket Index: LDAP.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP.pm,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- LDAP.pm 11 Sep 2002 12:54:47 -0000 1.37 +++ LDAP.pm 24 Oct 2002 13:08:07 -0000 1.38 @@ -124,10 +124,11 @@ my ($ldap, $host, $arg) = @_; $ldap->{net_ldap_socket} = IO::Socket::INET->new( - PeerAddr => $host, - PeerPort => $arg->{port} || '389', - Proto => 'tcp', - Timeout => defined $arg->{timeout} + PeerAddr => $host, + PeerPort => $arg->{port} || '389', + Proto => 'tcp', + MultiHomed => $arg->{multihomed}, + Timeout => defined $arg->{timeout} ? $arg->{timeout} : 120 ); Index: LDAP.pod =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP.pod,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- LDAP.pod 3 Jun 2002 15:35:52 -0000 1.16 +++ LDAP.pod 24 Oct 2002 13:08:07 -0000 1.17 @@ -71,6 +71,11 @@ Timeout passed to L<IO::Socket> when connecting the remote server. (Default: 120) +=item multihomed + +Will be passed to L<IO::Socket> as the C<MultiHomed> parameter +when connecting to the remote server + =item debug If passed a non-zero value then debug data will be sent to C<STDERR>. The |
From: Graham B. <gb...@us...> - 2002-10-24 13:04:48
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory usw-pr-cvs1:/tmp/cvs-serv19713/lib/Net/LDAP Modified Files: LDIF.pm LDIF.pod Log Message: Allow the file passed to new to be a pipe to/from a sub-process Index: LDIF.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/LDIF.pm,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- LDIF.pm 24 Oct 2002 12:49:24 -0000 1.18 +++ LDIF.pm 24 Oct 2002 13:04:45 -0000 1.19 @@ -36,7 +36,9 @@ else { require Symbol; $fh = Symbol::gensym(); - my $open = ($mode{$mode} || "<") . $file; + my $open = $file =~ /^\| | \|$/x + ? $file + : (($mode{$mode} || "<") . $file); open($fh,$open) or return; $opened_fh = 1; } Index: LDIF.pod =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/LDIF.pod,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- LDIF.pod 24 Aug 2001 19:31:14 -0000 1.5 +++ LDIF.pod 24 Oct 2002 13:04:45 -0000 1.6 @@ -36,7 +36,8 @@ =item new ( [ FILE [, MODE [,OPTIONS ]]] ) FILE may be the name of a file or an already open filehandle. If a filename -is passed in then it will be opened with the mode specified. +is passed in then it will be opened with the mode specified. If FILE begins +or ends with a C<|> then FILE will be passed directly to C<open> MODE defaults to "r" for read. You may specify "w" to for write+truncate or "a" for write+append. |
From: Graham B. <gb...@us...> - 2002-10-24 12:49:28
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory usw-pr-cvs1:/tmp/cvs-serv2215/lib/Net/LDAP Modified Files: LDIF.pm Log Message: Patch for solitary comments from Peter Marschall Index: LDIF.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/LDIF.pm,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- LDIF.pm 29 May 2002 11:02:04 -0000 1.17 +++ LDIF.pm 24 Oct 2002 12:49:24 -0000 1.18 @@ -9,7 +9,7 @@ require Net::LDAP::Entry; use vars qw($VERSION); -$VERSION = "0.12"; +$VERSION = "0.13"; my %mode = qw(w > r < a >>); @@ -85,8 +85,14 @@ chomp($ln); $self->{_current_lines} = $ln; chomp(@ldif = split(/^/, $ln)); - $self->{_next_lines} = scalar <$fh> || ''; - $self->eof(1) unless $self->{_next_lines}; + do { + $ln = scalar <$fh> || ''; + $self->eof(1) unless $ln; + $ln =~ s/\n //sg; + $ln =~ s/^#.*\n//mg; + chomp($ln); + $self->{_next_lines} = $ln; + } until ($self->{_next_lines} || $self->eof()); } @ldif; |
From: Clif H. <ch...@us...> - 2002-10-08 01:41:35
|
Update of /cvsroot/perl-ldap/ldap/contrib In directory usw-pr-cvs1:/tmp/cvs-serv24731/ldap/contrib Modified Files: tklkup Log Message: Change the way search base(s) are displayed. Instead of one big list, the base list has been setup as a cascading menu based on the namingContext(s) of the directory server. Index: tklkup =================================================================== RCS file: /cvsroot/perl-ldap/ldap/contrib/tklkup,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- tklkup 19 Jul 2002 02:44:19 -0000 1.28 +++ tklkup 8 Oct 2002 01:41:31 -0000 1.29 @@ -22,6 +22,12 @@ # # Revisions: # $Log$ +# Revision 1.29 2002/10/08 01:41:31 charden +# +# Change the way search base(s) are displayed. Instead of one big list, +# the base list has been setup as a cascading menu based on the +# namingContext(s) of the directory server. +# # Revision 1.28 2002/07/19 02:44:19 charden # # Added the calling of the DSML end_dsml function when schema XML information @@ -225,6 +231,7 @@ # but Tk forces me to. # my %Global = (); +my %NC = (); $Global{'jpeg'} = 1; eval { use Tk::JPEG; }; @@ -337,7 +344,6 @@ #my $sbmenu; my @attribute = (); my @server = (); - # # Check for dot file, use it to configure program. # @@ -471,13 +477,23 @@ if ( defined($server{$server[0]}) ) { + # user defined base + my $t1 = []; + $NC{$server{$server[0]}} = [ "0" ]; # dummy load in position 0 + ${$NC{$server{$server[0]}}}[1] = $t1; # + print "server == ", $server{$server[0]}, "\n"; + + push(@$t1, getBases($Global{'LDAP_SERVER'}, $server{$server[0]})); @base = getBases($Global{'LDAP_SERVER'}, $server{$server[0]}); } else { - my $error; + my $error = 0; my $entry; my $mesg; + # use root_dse to find the bases + + @base = (); my $ldap = new Net::LDAP( $Global{'LDAP_SERVER'}, timeout => 1, @@ -491,16 +507,16 @@ $mesg = $ldap->bind( password => "$Global{'bindpw'}", dn => "$Global{'binddn'}", version => $Global{'setVersion'}, - ) or $error = 1; + ); - if ( $mesg->code ) + if ( $mesg->code && $mesg->code != 48 ) { $errstr = $mesg->code; ERROR($errstr); + print $mesg->code,"\n"; } - - if ( !$error ) - { + else + { $entry = $ldap->root_dse(); if ( defined($entry) ) { @@ -509,20 +525,16 @@ { foreach my $ncbase ( @$attr ) { + my $t1 = []; + ${$NC{$ncbase}}[0] = [ "0" ]; # dummy load in position 0 + ${$NC{$ncbase}}[1] = $t1; # + push(@$t1, getBases($Global{'LDAP_SERVER'}, $ncbase)); push(@base, getBases($Global{'LDAP_SERVER'}, $ncbase)); } } - else - { - @base = (); - } } } } - else - { - @base = (); - } $ldap->unbind if ( defined($ldap)); } @@ -662,17 +674,39 @@ -> pack(-side => "left", -anchor => "w" ); # -# Set up the select search base radio buttons. +# Create the cascade search base menus # +@NcKeys = sort(keys(%NC)); + +foreach ( @NcKeys ) +{ + my $t1 = $NC{$_}; + $$t1[0] = $sbmenu->menu->Menu(-tearoff => 0); +} + +# +# Set up the select search base radio buttons. +# -foreach (@base) +foreach $Nc (@NcKeys) { - push(@BaseButton, $sbmenu->radiobutton( -label => $_, - -variable => \$LDAP_SEARCH_BASE, - -value => $_, -command => \&base, - -font => $Global{'Font'} ) ); + + foreach ( @{@{$NC{$Nc}}[1]} ) + { + push(@BaseButton, @{$NC{$Nc}}[0]->radiobutton(-label => $_, + -variable => \$LDAP_SEARCH_BASE, + -value => $_, -command => \&base, + -font => $Global{'Font'} ) ); + } + +} + +foreach my $Nclabel ( @NcKeys ) +{ + $sbmenu->cascade(-label => "$Nclabel"); + $sbmenu->entryconfigure("$Nclabel", -menu => @{$NC{$Nclabel}}[0]); } # @@ -923,8 +957,6 @@ $Global{'slist'}->insert(0 , $Global{'LDAP_SERVER'}); $sslist->insert(0 , $Global{'LDAP_SERVER'}) if ( Exists($sslist) ) ; -#if ( !$mybase ) -#{ $ptr = 1; # @@ -934,18 +966,19 @@ while ( @BaseButton >= 1 ) { -$widget = pop(@BaseButton); -$sbmenu->menu->delete($ptr); -++$ptr; + $widget = pop(@BaseButton); + $sbmenu->menu->delete($ptr); + ++$ptr; } -@base = (); - if ( $Global{'CORE_SERVER'} ne $Global{'LDAP_SERVER'} && defined($server{$Global{'LDAP_SERVER'}} ) ) { - - -@base = getBases($Global{'LDAP_SERVER'}, $server{$Global{'LDAP_SERVER'}}); + # user defined base + %NC = (); # Delete the old stuff. + my $t1 = []; + $NC{$server{$Global{'LDAP_SERVER'}}} = [ "0" ]; # dummy load in position 0 + ${$NC{$server{$Global{'LDAP_SERVER'}}}}[1] = $t1; # + push(@$t1, getBases($Global{'LDAP_SERVER'}, $server{$Global{'LDAP_SERVER'}})); } else @@ -953,6 +986,7 @@ my $error; my $mesg; my $entry; + # use root_dse to find the bases my $ldap = new Net::LDAP( $Global{'LDAP_SERVER'}, timeout => 1, @@ -966,16 +1000,16 @@ $mesg = $ldap->bind( password => "$Global{'bindpw'}", dn => "$Global{'binddn'}", version => $Global{'setVersion'}, - ) or $error = 1; + ); - if ( $mesg->code ) + if ( $mesg->code && $mesg->code != 48 ) { $errstr = $mesg->code; ERROR($errstr); } - - if ( !$error ) - { + else + { + %NC = (); # Delete the old stuff. $entry = $ldap->root_dse(); if ( defined($entry) ) { @@ -984,52 +1018,69 @@ { foreach my $ncbase ( @$attr ) { - push( @base, getBases($Global{'LDAP_SERVER'}, $ncbase)); + my $t1 = []; + ${$NC{$ncbase}}[0] = [ "0" ]; # dummy load in position 0 + ${$NC{$ncbase}}[1] = $t1; # + push(@$t1, getBases($Global{'LDAP_SERVER'}, $ncbase)); } } - else - { - @base = (); - } } } } - else - { - @base = (); - } + $ldap->unbind if ( defined($ldap)); } - if ( @base >= 1) - { - $LDAP_SEARCH_BASE = $base[0]; - } - else - { - $LDAP_SEARCH_BASE = ""; - } +# +# Create the cascade search base menus +# +@NcKeys = sort(keys(%NC)); + +foreach ( @NcKeys ) +{ + my $t1 = $NC{$_}; + $$t1[0] = $sbmenu->menu->Menu(-tearoff => 0); +} # # Set up the select search base radio buttons. # -foreach (@base) +foreach $Nc (@NcKeys) { - push(@BaseButton, $sbmenu->radiobutton( -label => $_, + +foreach ( @{@{$NC{$Nc}}[1]} ) +{ + push(@BaseButton, @{$NC{$Nc}}[0]->radiobutton(-label => $_, -variable => \$LDAP_SEARCH_BASE, - -value => $_, -command => \&base, + -value => $_, -command => \&base, -font => $Global{'Font'} ) ); +} + +} +# +# Attached the cascaded menu to it's master menu +# + +foreach my $Nclabel ( @NcKeys ) +{ +$sbmenu->cascade(-label => "$Nclabel"); +$sbmenu->entryconfigure("$Nclabel", -menu => @{$NC{$Nclabel}}[0]); } -# } # End of if ( !$mybase ) +if ( @NcKeys) +{ + $LDAP_SEARCH_BASE = shift (@NcKeys); +} +else +{ + $LDAP_SEARCH_BASE = ""; +} -$LDAP_SEARCH_BASE = $base[0]; $sbblist->insert(0 , $LDAP_SEARCH_BASE); - $Global{'CORE_SERVER'} = $Global{'LDAP_SERVER'}; } # End of server subroutine @@ -3801,16 +3852,9 @@ filter => $f, attrs => $att_wanted, callback => \&print_entry, -) or $error = 1; - - -if ( $error == 1 ) -{ - $list->insert("end", "Search error: $@\n"); - return; -} +); -if ( $mesg->code ) +if ( $mesg->code && $mesg->code != 48 ) { $errstr = $mesg->code; $list->insert("end", "Error code: $errstr\n"); @@ -4021,19 +4065,12 @@ $mesg = $ldap->bind( password => "$Global{'bindpw'}", dn => "$Global{'binddn'}", version => $Global{'setVersion'}, - ) or $error = 1; + ); # # Check for an error on bind # -if ( $error == 1 ) -{ - my $error = "getBases LDAP bind error."; - ERROR(\$error); - return @base; -} - if ( $mesg->code ) { $errstr = $mesg->code; @@ -4073,19 +4110,7 @@ filter => $f, attrs => [ "cn" ], scope => "one", -) or $error = 1; - -# -# search for deadly ldap->search call error, -# not the same as an ldap error. -# -if ( $error == 1 ) -{ - my $error = "getBases LDAP search error."; - ERROR(\$error); - return @new_base; -} - +); # # Check for an error on search @@ -4479,20 +4504,31 @@ At the bottom of the window is the Accept button, pressing this button will set the bind DN and the password. -The I<SELECT BASE> button will activate a -drop down menu. From the menu the user will select the -"RadioButton" that corresponds to the search base the -user wishes to use in the directory search. When selected -the "RadioButton" diamond will turn red in color. The -DIRECTORY SEARCH BASE text box will display the directory -search base that is selected. This menu is a designed to -be a "I<tear off>" menu, selecting the "---------------" line -will cause the pull down menu to become a separate window -that is still somewhat controlled by the GUI. If the GUI -is icon-ed or exited, the tear off window will follow the -actions of the GUI. All other actions like moving or -closing just the torn off window must be done by the -user's window manager. +The I<SELECT BASE> button will activate a cascading +drop down menu that contains the NamingContexts of the directory +server. This menu is a designed to be a "I<tear off>" menu, +selecting the "---------------" line will cause the pull down +menu to become a separate window that is still somewhat +controlled by the GUI. If the GUI is icon-ed or exited, the +tear off window will follow the actions of the GUI. All other +actions like moving or closing just the torn off window must be +done by the user's window manager. + +From the window that contains the NamingContexts the user +can select a namingContext to display the bases assiocated with +that naminContext. In a non-torn off menu to select a namingContext +simply pass the cursor over the nameingContext, a new window +containing the bases assiocated with that namingContext will be +displayed. On a menu window that has been torn off, select the +namingContext by clicking on the namingContext, a new window +containing the bases assiocated with that namingContext will be +displayed. From the bases menu the user will select the +"RadioButton" that corresponds to the search base the user +wishes to use in the directory search. When selected the +"RadioButton" diamond will turn red in color. The DIRECTORY +SEARCH BASE text box will display the directory search base +that is selected. + The I<SELECT ADDITIONAL ATTRIBUTES> button will activate a drop down menu. From the menu the user will select the |
From: Graham B. <gb...@us...> - 2002-09-11 12:54:50
|
Update of /cvsroot/perl-ldap/ldap/lib/Net In directory usw-pr-cvs1:/tmp/cvs-serv10350/lib/Net Modified Files: LDAP.pm Log Message: Fix typo preventing multiple being passed to new Index: LDAP.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP.pm,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- LDAP.pm 11 Sep 2002 12:53:15 -0000 1.36 +++ LDAP.pm 11 Sep 2002 12:54:47 -0000 1.37 @@ -97,7 +97,7 @@ my $obj = bless {}, $type; foreach my $h (ref($host) ? @$host : ($host)) { - if ($obj->_connect($host, $arg)) { + if ($obj->_connect($h, $arg)) { $obj->{net_ldap_host} = $h; last; } |
From: Graham B. <gb...@us...> - 2002-09-11 12:53:18
|
Update of /cvsroot/perl-ldap/ldap/lib/Net In directory usw-pr-cvs1:/tmp/cvs-serv10053/lib/Net Modified Files: LDAP.pm Log Message: Change default protocol version to 3 Index: LDAP.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP.pm,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -r1.35 -r1.36 --- LDAP.pm 18 Jul 2002 13:01:12 -0000 1.35 +++ LDAP.pm 11 Sep 2002 12:53:15 -0000 1.36 @@ -22,9 +22,9 @@ LDAP_INAPPROPRIATE_AUTH ); -$VERSION = "0.26"; +$VERSION = "0.26_01"; @ISA = qw(Net::LDAP::Extra); -$LDAP_VERSION = 2; # default LDAP protocol version +$LDAP_VERSION = 3; # default LDAP protocol version # Net::LDAP::Extra will only exist is someone use's the module. But we need # to ensure the package stash exists or perl will complain that we inherit |
From: Graham B. <gb...@us...> - 2002-09-11 12:52:12
|
Update of /cvsroot/perl-ldap/ldap In directory usw-pr-cvs1:/tmp/cvs-serv9743 Modified Files: MANIFEST Log Message: Add contrib/ldifuniq.pl Index: MANIFEST =================================================================== RCS file: /cvsroot/perl-ldap/ldap/MANIFEST,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- MANIFEST 18 Jul 2002 12:58:39 -0000 1.19 +++ MANIFEST 11 Sep 2002 12:52:09 -0000 1.20 @@ -18,6 +18,7 @@ contrib/ldapmodify.pl contrib/ldifdiff.pl contrib/ldifsort.pl +contrib/ldifuniq.pl contrib/printMembers.pl contrib/tklkup data/00-cmp.ldif |
From: Graham B. <gb...@us...> - 2002-09-11 12:49:58
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory usw-pr-cvs1:/tmp/cvs-serv8840/lib/Net/LDAP Modified Files: DSML.pm Log Message: Base64 encode values when needed Index: DSML.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/DSML.pm,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- DSML.pm 18 Jul 2002 20:04:07 -0000 1.16 +++ DSML.pm 11 Sep 2002 12:49:55 -0000 1.17 @@ -11,7 +11,7 @@ use Net::LDAP::Entry; @ISA = qw(XML::SAX::Base); -$VERSION = "0.10"; +$VERSION = "0.11"; # OO purists will hate this :) my %schema_typemap = qw( @@ -412,10 +412,19 @@ @data{qw(Name LocalName)} = qw(dsml:value value); } + my %chdata; foreach my $val (@{$attr->{vals}}) { - %attr = (); + if ($val =~ /(^[ :]|[\x00-\x1f\x7f-\xff])/) { + require MIME::Base64; + $chdata{Data} = MIME::Base64::encode($val,""); + %attr = ( '{}encoding' => { Value => 'base64', Name => "encoding"} ); + } + else { + $chdata{Data} = $val; + %attr = (); + } $handler->start_element(\%data); - $handler->characters({ Data => $val } ); + $handler->characters(\%chdata); %attr = (); $handler->end_element(\%data); } |
From: Graham B. <gb...@us...> - 2002-09-11 12:49:19
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory usw-pr-cvs1:/tmp/cvs-serv8538/lib/Net/LDAP Modified Files: Search.pm Filter.pm Log Message: Fix perl5.004 compatability issues Index: Search.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/Search.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Search.pm 3 Jun 2002 15:26:46 -0000 1.7 +++ Search.pm 11 Sep 2002 12:49:09 -0000 1.8 @@ -12,7 +12,7 @@ use Net::LDAP::Constant qw(LDAP_SUCCESS LDAP_DECODING_ERROR); @ISA = qw(Net::LDAP::Message); -$VERSION = "0.08"; +$VERSION = "0.09"; sub first_entry { # compat @@ -131,9 +131,9 @@ $i++; } - $v ||= ($a->[1] ||= Net::LDAP::Util::canonical_dn( $a->[0]->dn, reverse => 1, separator => "\0")) + $v ||= ($a->[1] ||= Net::LDAP::Util::canonical_dn( $a->[0]->dn, "reverse" => 1, separator => "\0")) cmp - ($b->[1] ||= Net::LDAP::Util::canonical_dn( $b->[0]->dn, reverse => 1, separator => "\0")); + ($b->[1] ||= Net::LDAP::Util::canonical_dn( $b->[0]->dn, "reverse" => 1, separator => "\0")); } map { [ $_ ] } @{$self->{entries}}; } Index: Filter.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/Filter.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Filter.pm 31 Jan 2002 14:04:15 -0000 1.7 +++ Filter.pm 11 Sep 2002 12:49:11 -0000 1.8 @@ -7,7 +7,7 @@ use strict; use vars qw($VERSION); -$VERSION = "0.13"; +$VERSION = "0.14"; # filter = "(" filtercomp ")" # filtercomp = and / or / not / item @@ -117,12 +117,12 @@ # If the op is = and contains one or more * not # preceeded by \ then do partial matches - if ($op eq '=' && $val =~ /^(\\.|[^\\*]*)*\*/o ) { + if ($op eq '=' && $val =~ /^(\\.|[^\\*]+)*\*/o ) { my $n = []; my $type = 'initial'; - while ($val =~ s/^((\\.|[^\\*]*)*)\*//) { + while ($val =~ s/^((\\.|[^\\*]+)*)\*//) { push(@$n, { $type, _unescape("$1") }) # $1 is readonly, copy it if length($1) or $type eq 'any'; |
From: Kartik S. <kar...@us...> - 2002-08-24 15:13:20
|
Update of /cvsroot/perl-ldap/ldap/contrib In directory usw-pr-cvs1:/tmp/cvs-serv1300 Modified Files: README Log Message: Index: README =================================================================== RCS file: /cvsroot/perl-ldap/ldap/contrib/README,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- README 3 Jul 2001 19:30:02 -0000 1.2 +++ README 24 Aug 2002 15:13:17 -0000 1.3 @@ -10,6 +10,8 @@ printMembers.pl Print all members of a group isMember.pl Determine if a given user is a member of a given group ldifsort.pl Sorts an LDIF file by the specified key attribute. + ldifuniq.pl Culls unique entries from a reference file with + respect to a comparison file. Each file contains a POD with its full description and author contacts. e.g. |
From: Kartik S. <kar...@us...> - 2002-08-24 15:11:24
|
Update of /cvsroot/perl-ldap/ldap/contrib In directory usw-pr-cvs1:/tmp/cvs-serv846 Added Files: ldifuniq.pl Log Message: --- NEW FILE: ldifuniq.pl --- #! /usr/bin/perl # $Id: ldifuniq.pl,v 1.1 2002/08/24 15:11:21 kartik_subbarao Exp $ =head1 NAME ldifuniq.pl - Culls unique entries from a reference file with respect to a comparison file. =head1 DESCRIPTION ldifuniq.pl takes as input two LDIF files, a reference file and a comparison file. Each entry in the reference file is compared to its counterpart in the comparison file. If it does not have a counterpart, or if the counterpart is not identical, the reference entry is printed to standard output. Otherwise no output is generated. This behavior is analogous to the -u option of the uniq command. =head1 SYNOPSIS ldifuniq.pl reffile.ldif cmpfile.ldif =head1 AUTHOR Kartik Subbarao E<lt>sub...@co...E<gt> =cut use MIME::Base64; use strict; my $reffile = $ARGV[0]; my $cmpfile = $ARGV[1]; die "usage: $0 reffile cmpfile\n" unless $reffile && $cmpfile; $/ = ""; sub getdn { my $rec = shift; my $dn; 1 while s/^(dn:.*)?\n /$1/im; # Handle line continuations if (/^dn(::?) (.*)$/im) { $dn = $2; $dn = decode_base64($dn) if $1 eq '::'; } $dn; } open(CMPFH, $cmpfile) || die "$cmpfile: $!\n"; my (%cmpdnpos, $pos); $pos = 0; while (<CMPFH>) { my $dn = getdn($_); $cmpdnpos{$dn} = $pos; $pos = tell; } open(REFFH, $reffile) || die "$reffile: $!\n"; while (<REFFH>) { my $refrec = $_; $refrec .= "\n" if $refrec !~ /\n\n$/; my $dn = getdn($refrec); my $pos = $cmpdnpos{$dn}; if ($pos eq undef) { print $refrec; next; # Not in cmpfile, print the entry. } seek(CMPFH, $pos, 0); my $cmprec = <CMPFH>; $cmprec .= "\n" if $cmprec !~ /\n\n$/; print $refrec if $refrec ne $cmprec; } |
From: Graham B. <gb...@us...> - 2002-08-20 00:01:59
|
Update of /cvsroot/perl-ldap/asn In directory usw-pr-cvs1:/tmp/cvs-serv9818 Modified Files: ChangeLog Log Message: Release 0.16 Index: ChangeLog =================================================================== RCS file: /cvsroot/perl-ldap/asn/ChangeLog,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- ChangeLog 10 Feb 2002 16:12:16 -0000 1.21 +++ ChangeLog 20 Aug 2002 00:01:53 -0000 1.22 @@ -1,3 +1,78 @@ +2002-08-20 01:00 Graham Barr + + * lib/Convert/ASN1.pm: + + Release 0.16 + +2002-08-20 00:59 Graham Barr + + * README, lib/Convert/ASN1.pod: + + Update search.cpan.org link and add CPAN RT email address + +2002-08-20 00:53 Graham Barr + + * t/10choice.t: + + Fix test count + +2002-08-20 00:51 Graham Barr + + * parser.y, lib/Convert/ASN1/_encode.pm, + lib/Convert/ASN1/parser.pm, t/10choice.t: + + Fix for nested CHOICEs and tagged CHOICEs in SEQUENCES + +2002-03-25 14:59 Graham Barr + + * t/: 00prim.t, 01tag.t, 02seq.t, 03seqof.t, 04opt.t, 05time.t, + 06bigint.t, 08set.t, 09contr.t, 11indef.t: + + Add more detail when tests fail + +2002-03-25 09:06 Graham Barr + + * lib/Convert/ASN1/_decode.pm, t/10choice.t, t/11indef.t, MANIFEST: + + Patch from Wolfgang Laun + Fix bug in decode when there are nested CHOICEs + Add tests t/10choice.t t/11indef.t + +2002-03-25 07:46 Graham Barr + + * lib/Convert/: ASN1.pm, ASN1.pod, ASN1/_decode.pm: + + Patch from Wolfgang Laun + Addition of prepare_file and the change prepare to accept a filehandle. + POD updates. + Fix decode of nested indefinate lengths + +2002-03-25 07:39 Graham Barr + + * mkparse, parser.y, lib/Convert/ASN1/parser.pm: + + Allow '-'s in names and fix an uninit warning in the generated parser + +2002-02-15 06:51 Graham Barr + + * lib/Convert/ASN1/_encode.pm: + + Use ::isa to determine if stash argument is a HASH + +2002-02-10 16:41 Graham Barr + + * MANIFEST, examples/x509decode: + + Added x509decode from Norbert Klasen + +2002-02-10 16:12 Graham Barr + + * lib/Convert/ASN1.pm, lib/Convert/ASN1/_decode.pm, + lib/Convert/ASN1/_encode.pm, t/00prim.t, t/03seqof.t: + + Add support for units with one sinlge, unamed entry + eg test ::= INTEGER or list ::= SEQUENCE OF OCTET STRING + 2002-01-22 11:24 Graham Barr * README, parser.y, lib/Convert/ASN1.pm, lib/Convert/ASN1.pod, |
From: Graham B. <gb...@us...> - 2002-08-20 00:01:06
|
Update of /cvsroot/perl-ldap/asn/lib/Convert In directory usw-pr-cvs1:/tmp/cvs-serv9395/lib/Convert Modified Files: ASN1.pm Log Message: Release 0.16 Index: ASN1.pm =================================================================== RCS file: /cvsroot/perl-ldap/asn/lib/Convert/ASN1.pm,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- ASN1.pm 25 Mar 2002 07:46:08 -0000 1.22 +++ ASN1.pm 20 Aug 2002 00:00:57 -0000 1.23 @@ -13,7 +13,7 @@ BEGIN { @ISA = qw(Exporter); - $VERSION = '0.15_02'; + $VERSION = '0.16'; %EXPORT_TAGS = ( io => [qw(asn_recv asn_send asn_read asn_write asn_get asn_ready)], |
From: Graham B. <gb...@us...> - 2002-08-19 23:59:21
|
Update of /cvsroot/perl-ldap/asn/lib/Convert In directory usw-pr-cvs1:/tmp/cvs-serv8750/lib/Convert Modified Files: ASN1.pod Log Message: Update search.cpan.org link and add CPAN RT email address Index: ASN1.pod =================================================================== RCS file: /cvsroot/perl-ldap/asn/lib/Convert/ASN1.pod,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- ASN1.pod 25 Mar 2002 07:46:08 -0000 1.6 +++ ASN1.pod 19 Aug 2002 23:59:18 -0000 1.7 @@ -418,10 +418,6 @@ =item * -Indefinite length encoding - -=item * - XS implementation. =item * @@ -436,7 +432,7 @@ =head1 AUTHOR -Graham Barr <gbarr@pobox.xom> +Graham Barr <gb...@po...>, Report bugs via <bug...@rt...> =head1 COPYRIGHT |
From: Graham B. <gb...@us...> - 2002-08-19 23:59:21
|
Update of /cvsroot/perl-ldap/asn In directory usw-pr-cvs1:/tmp/cvs-serv8750 Modified Files: README Log Message: Update search.cpan.org link and add CPAN RT email address Index: README =================================================================== RCS file: /cvsroot/perl-ldap/asn/README,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- README 22 Jan 2002 11:24:28 -0000 1.3 +++ README 19 Aug 2002 23:59:18 -0000 1.4 @@ -13,7 +13,7 @@ The latest release is available from CPAN - http://search.cpan.org/search?module=Convert::ASN1 + http://search.cpan.org/author/GBARR/Convert-ASN1 INSTALL @@ -27,5 +27,11 @@ make make test make install + +REPORTING BUGS + +If you find any bugs with Convert::ASN1, please report then via + + bug...@rt... $Id$ |
From: Graham B. <gb...@us...> - 2002-08-19 23:53:39
|
Update of /cvsroot/perl-ldap/asn/t In directory usw-pr-cvs1:/tmp/cvs-serv7442/t Modified Files: 10choice.t Log Message: Fix test count Index: 10choice.t =================================================================== RCS file: /cvsroot/perl-ldap/asn/t/10choice.t,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- 10choice.t 19 Aug 2002 23:51:38 -0000 1.2 +++ 10choice.t 19 Aug 2002 23:53:37 -0000 1.3 @@ -7,7 +7,7 @@ use Convert::ASN1; BEGIN { require 't/funcs.pl' } -print "1..7\n"; +print "1..10\n"; btest 1, $asn = Convert::ASN1->new; btest 2, $asn->prepare( <<'[TheEnd]' ) or warn $asn->error; |
From: Graham B. <gb...@us...> - 2002-08-19 23:51:41
|
Update of /cvsroot/perl-ldap/asn/lib/Convert/ASN1 In directory usw-pr-cvs1:/tmp/cvs-serv7018/lib/Convert/ASN1 Modified Files: _encode.pm parser.pm Log Message: Fix for nested CHOICEs and tagged CHOICEs in SEQUENCES Index: _encode.pm =================================================================== RCS file: /cvsroot/perl-ldap/asn/lib/Convert/ASN1/_encode.pm,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- _encode.pm 15 Feb 2002 06:51:45 -0000 1.15 +++ _encode.pm 19 Aug 2002 23:51:38 -0000 1.16 @@ -348,7 +348,8 @@ my $stash = defined($_[3]) ? $_[3] : $_[2]; for my $op (@{$_[1]->[cCHILD]}) { - my $var = $op->[cVAR]; + my $var = defined $op->[cVAR] ? $op->[cVAR] : $op->[cCHILD]->[0]->[cVAR]; + if (exists $stash->{$var}) { push @{$_[6]}, $var; _encode($_[0],[$op], $stash, $_[6], $_[4]); Index: parser.pm =================================================================== RCS file: /cvsroot/perl-ldap/asn/lib/Convert/ASN1/parser.pm,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- parser.pm 25 Mar 2002 07:39:46 -0000 1.8 +++ parser.pm 19 Aug 2002 23:51:38 -0000 1.9 @@ -696,7 +696,10 @@ compile_one($tree, $op->[cCHILD], defined($op->[cVAR]) ? $name . "." . $op->[cVAR] : $name); ;# If a CHOICE is given a tag, then it must be EXPLICIT - $op = explicit($op) if $op->[cTYPE] == opCHOICE && defined($op->[cTAG]) && length($op->[cTAG]); + if ($op->[cTYPE] == opCHOICE && defined($op->[cTAG]) && length($op->[cTAG])) { + $op = bless explicit($op); + $op->[cTYPE] = opSEQUENCE; + } if ( @{$op->[cCHILD]} > 1) { ;#if ($op->[cTYPE] != opSEQUENCE) { @@ -897,7 +900,7 @@ 1; -# 947 "y.tab.pl" +# 950 "y.tab.pl" %yystate = ('State20','','State11','','State30','','State21','','State31', '','State50','','State32','','State14','','State51','','State33','', |
From: Graham B. <gb...@us...> - 2002-08-19 23:51:40
|
Update of /cvsroot/perl-ldap/asn In directory usw-pr-cvs1:/tmp/cvs-serv7018 Modified Files: parser.y Log Message: Fix for nested CHOICEs and tagged CHOICEs in SEQUENCES Index: parser.y =================================================================== RCS file: /cvsroot/perl-ldap/asn/parser.y,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- parser.y 25 Mar 2002 07:39:46 -0000 1.7 +++ parser.y 19 Aug 2002 23:51:37 -0000 1.8 @@ -354,7 +354,10 @@ compile_one($tree, $op->[cCHILD], defined($op->[cVAR]) ? $name . "." . $op->[cVAR] : $name); ;# If a CHOICE is given a tag, then it must be EXPLICIT - $op = explicit($op) if $op->[cTYPE] == opCHOICE && defined($op->[cTAG]) && length($op->[cTAG]); + if ($op->[cTYPE] == opCHOICE && defined($op->[cTAG]) && length($op->[cTAG])) { + $op = bless explicit($op); + $op->[cTYPE] = opSEQUENCE; + } if ( @{$op->[cCHILD]} > 1) { ;#if ($op->[cTYPE] != opSEQUENCE) { |
From: Graham B. <gb...@us...> - 2002-08-19 23:51:40
|
Update of /cvsroot/perl-ldap/asn/t In directory usw-pr-cvs1:/tmp/cvs-serv7018/t Modified Files: 10choice.t Log Message: Fix for nested CHOICEs and tagged CHOICEs in SEQUENCES Index: 10choice.t =================================================================== RCS file: /cvsroot/perl-ldap/asn/t/10choice.t,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- 10choice.t 25 Mar 2002 09:06:18 -0000 1.1 +++ 10choice.t 19 Aug 2002 23:51:38 -0000 1.2 @@ -42,3 +42,12 @@ ntest 5, 13, $seq->{list}->[0]->{prime}; ntest 6, 28, $seq->{list}->[1]->{product}->{perfect}; ntest 7, 42, $seq->{list}->[2]->{product}->{plain}; + + +btest 8, $asn->prepare( 'Foo ::= [1] EXPLICIT CHOICE { a NULL }' ) or warn $asn->error; +$nl = $asn->find('Foo'); +$buf = $nl->encode( a => 1 ); +$result = pack 'C*', map hex, qw(A1 02 05 00); +stest 9, $result, $buf; +$seq = $nl->decode( $result ) or warn $asn->error; +btest 10, $seq->{a}; |
From: Graham B. <gb...@us...> - 2002-08-19 12:22:00
|
Update of /cvsroot/perl-ldap/ldap/lib/Net/LDAP In directory usw-pr-cvs1:/tmp/cvs-serv30640/lib/Net/LDAP Modified Files: Constant.pm Log Message: Add LDAP_CONTROL_TREE_DELETE Index: Constant.pm =================================================================== RCS file: /cvsroot/perl-ldap/ldap/lib/Net/LDAP/Constant.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Constant.pm 10 Apr 2001 16:30:27 -0000 1.3 +++ Constant.pm 19 Aug 2002 12:21:56 -0000 1.4 @@ -93,6 +93,7 @@ sub LDAP_CONTROL_PROXYAUTHENTICATION () { "2.16.840.1.113730.3.4.12" } sub LDAP_CONTROL_PAGED () { "1.2.840.113556.1.4.319" } +sub LDAP_CONTROL_TREE_DELETE () { "1.2.840.113556.1.4.805" } sub LDAP_CONTROL_MATCHEDVALS () { "1.2.826.0.1.3344810.2.2" } |
From: Clif H. <ch...@us...> - 2002-07-19 02:44:22
|
Update of /cvsroot/perl-ldap/ldap/contrib In directory usw-pr-cvs1:/tmp/cvs-serv14316/ldap/contrib Modified Files: tklkup Log Message: Added the calling of the DSML end_dsml function when schema XML information is writen to a file. Index: tklkup =================================================================== RCS file: /cvsroot/perl-ldap/ldap/contrib/tklkup,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- tklkup 15 Jun 2002 02:47:34 -0000 1.27 +++ tklkup 19 Jul 2002 02:44:19 -0000 1.28 @@ -22,6 +22,11 @@ # # Revisions: # $Log$ +# Revision 1.28 2002/07/19 02:44:19 charden +# +# Added the calling of the DSML end_dsml function when schema XML information +# is writen to a file. +# # Revision 1.27 2002/06/15 02:47:34 charden # # Added code to close windows after ldap actions are taken. This is to force @@ -1684,6 +1689,7 @@ open(FXML, ">$Global{'fdata'}"); $dsml = Net::LDAP::DSML->new( output => *FXML, pretty_print => 1 ); $dsml->write_schema($schemaHash{'schema'}); + $dsml->end_dsml; close(FXML); } else |