Jochen Stenzel <Joc...@ic...> wrote:
> Hello,
>
> we are using Net::LDAP successfully for years now. Working on a query
> generator, we just recognized that additional parens around a (partial
> or complete) query can make a significant difference even if one would
> not expect it: "(sn=name)" supplies results, while "((sn=name))" does
> not. Is this behaviour defined? (We looked at RFC 2254 but did not find
> a hint.)
>
> Thanks in advance
>
> Jochen
The ABNF in RFC 2254 does not permit ((sn=name)).
----
filter = "(" filtercomp ")"
filtercomp = and / or / not / item
and = "&" filterlist
or = "|" filterlist
not = "!" filter
filterlist = 1*filter
item = simple / present / substring / extensible
simple = attr filtertype value
[...]
----
So the outer ( ) would be the filter surrounding a filtercomp. The
filtercomp cannot be 'and' (it doesn't start with &), 'or' (not |), 'not'
(not |) or 'item' (not an attr), therefore the filter is not legal.
Cheers,
Chris
|