Begin forwarded message:

From: Adam Rosenstein <a...@redcondor.com>
Date: May 8, 2009 7:48:30 PM CDT
To: <gb...@pobox.com>
Message-Id: <1241830110.5502.7.ca...@adam-60tp>

Thanks for the awesome Net::LDAP

When making a server and using running attr=a* filter against it I found
it would never match beacuse:

sub _filterMatch($@)
{
.
.
.
 # handle basic filters
if ($op =~ /^(equalityMatch|greaterOrEqual|lessOrEqual|approxMatch| substrings)/o) {
   my $attr;
   my $assertion;
   my $match;

   if ($op eq 'substrings') {

       $attr = $args->{'type'};

       # build a regexp as assertion value
$assertion = join('.*', map { "\Q$_\E" } map { values %$_ } @{$args->{'substrings'}}); $assertion = '^'. $assertion if (exists $args->{'substrings'} [0]{'initial'}); $assertion .= '$' if (exists $args->{'substrings'}[-1] {'final'});


Sticks a '^' into the $regex. and then


sub _cis_substrings($@)
{
 my $regex=shift;
 my $op=shift;
 return 1 if ($regex =~ /^$/);
 return grep(/\Q$regex\E/i, @_) ? 1 : 0;
}

uses \Q...\E (again) and therefore tries to match \^ .

Thanks again for your great software.


Reply via email to