On Tue, 2014-04-01 at 17:21 +0300, Zeus Panchenko wrote:
(...) attributetype ( 2.16.840.1.113719.1.203.4.3 NAME 'dhcpStatements' EQUALITY caseIgnoreIA5Match DESC 'Flexible storage for specific data depending on what object this exists in. Like conditional statements, server parameters, etc. This allows the standard to evolve without needing to adjust the schema.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ...
- ---[ quotation end ]-------------------------------------------
so, when I use filter "(&(objectClass=dhcpHost)(dhcpStatements=*))" I successfully receive all objects but lets say I need to find this object:
- ---[ quotation start ]-------------------------------------------
dn: cn=ap01,cn=10.0.0.0,cn=officeXXX DHCP Config,ou=officeXXX,ou=DHCP, dc=allstuff cn: ap01 objectClass: top objectClass: dhcpHost dhcpHWAddress: ethernet 20:cf:30:88:5d:18 dhcpStatements: fixed-address 10.0.0.222
- ---[ quotation end ]-------------------------------------------
I use filter: "(&(objectClass=dhcpHost)(dhcpStatements=fixed-address 10.0.0.222))"
and receive empty result ...
If you've given dhcpStatements an index in slapd.conf when the attribute already existed in LDAP tree, you also need to stop slapd and run sbin/slapindex. Otherwise the index is empty, and tells slapd there are no matches for your filter. OTOH using cn=config to add an index does this automatically.
it is the same picture for anything except dhcpStatements=* ...
so, how is it correct to write the filter to get all objects with IP like 10.0.0.2* ?
Doesn't look like you can. The dhcpStatements attribute description you showed has no SUBSTR(ing) matching rule, so you can't use substring search. "(attrname=*)" is a special case: it's presence search, not substring search.