Hi,

On Monday, 5. September 2011, Serge A. Ribalchenko wrote:
> Im trying to get a list of available entries from ldap by simple filter:
> attribute cn must be less than 1000 and greater than 500. According to
> Net::LDAP documentation this could be done like this:
> 
> 019:         filter => "&(cn<=1000)(cn>=500)"

The problem is not in perl-ldap, but on the server side.

If the attributeType used in the does not support the ORDERING matching rule,
then you are out of luck.
You can find the matching rules supported by the various attributeTypes in the 
schema.

Here's the definition taken from my OpenLDAP server (as OpenLDAP adheres to
the RFCs vry strictly, I am pretty confident, it is exactly as in the RFCs):

attributeTypes: ( 2.5.4.41 NAME 'name'
        DESC 'RFC4519: common supertype of name attributes'
        EQUALITY caseIgnoreMatch
        SUBSTR caseIgnoreSubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

attributeTypes: ( 2.5.4.3 NAME ( 'cn' 'commonName' )
        DESC 'RFC4519: common name(s) for which the entity is known by'
        SUP name )

It says:
* the attributetype 'name' has matching rules for EQUALITY & SUBSTR only
* 'cn' is derived from 'name'

No luck in this case, sorry!

Best
Peter

PS: It is possible that some LDAP server implementations implement extensions
on the matching rules that are not shown in the schema, but as this is non-
standard, the results depend in the specific implementation (e.g. lexical 
instead of numerical sorting, ...)


-- 
Peter Marschall
pe...@adpm.de

Reply via email to