make_filter: cope with filters that are already parenthesized

Treat filter elements correctly that may be more complex filters
themselves; e.g. '(&(sn=Doe)(givenname=John))'

FossilOrigin-Name: 02ee84e2eaf12885398020776440753ae7915c076db55df9416cf89114612d54
This commit is contained in:
peter@adpm.de 2011-03-05 21:22:46 +00:00
parent 02414e8982
commit 96dbf0e215

View file

@ -760,8 +760,8 @@ sub make_filter
return unless scalar @$globs;
my $filter;
$filter = join '', map { "($_)" } @$globs;
$filter = '(|' . $filter . ')' if scalar @$globs > 1;
$filter = join('', map { (/^\(.*\)$/o) ? $_ : "($_)" } @$globs);
$filter = '(|' . $filter . ')' if (scalar(@$globs) > 1);
$filter = Net::LDAP::Filter->new($filter);
if ( $filter ) {