[Date Prev][Date Next] [Chronological] [Thread] [Top]

how to search for custom attribute-types



Hi all,

We set up an openldap-server (2.0.23) on solaris using an oracle sql backend. We are using some custom object classes containing custom attribute types.
When issuing search statements like the one below, we are told that we are using a bad filter (logfile):

filter=(&(objectClass=*)(smartiSupplier=10))

output (logfile):

do_search
ber_scanf fmt ({aiiiib) ber:
ber_dump: buf=0x00167bc0 ptr=0x00167bc3 end=0x00167c19 len=86
  0000:  63 54 04 1b 64 63 3d 77  65 62 65 64 69 2c 64 63   cT..dc=webedi,dc
  0010:  3d 6e 65 77 74 72 6f 6e  2c 64 63 3d 6e 65 74 0a   =newtron,dc=net.
  0020:  01 02 0a 01 00 02 02 27  10 02 02 01 2c 01 01 00   .......'....,...
  0030:  a0 22 87 0b 6f 62 6a 65  63 74 63 6c 61 73 73 a3    "..objectclass.
  0040:  13 04 0e 73 6d 61 72 74  69 53 75 70 70 6c 69 65   ...smartiSupplie
  0050:  72 04 01 31 30 00                                  r..10.
SRCH "dc=webedi,dc=newtron,dc=net" 2 0    10000 300 0
begin get_filter
AND
begin get_filter_list
begin get_filter
PRESENT
ber_scanf fmt (o) ber:
ber_dump: buf=0x00167bc0 ptr=0x00167bf5 end=0x00167c19 len=36
  0000:  87 0b 6f 62 6a 65 63 74  63 6c 61 73 73 a3 13 04   ..objectclass...
  0010:  0e 73 6d 61 72 74 69 53  75 70 70 6c 69 65 72 04   .smartiSupplier.
  0020:  01 31 30 00                                        .10.
end get_filter 0
begin get_filter
EQUALITY
ber_scanf fmt ({oo}) ber:
ber_dump: buf=0x00167bc0 ptr=0x00167c02 end=0x00167c19 len=23
  0000:  a3 13 04 0e 73 6d 61 72  74 69 53 75 70 70 6c 69   ....smartiSuppli
  0010:  65 72 04 01 31 30 00                               er..10.
end get_filter 0
end get_filter_list
end get_filter 0
    filter: (&(objectClass=*)(badfilter))
ber_scanf fmt ({v}}) ber:
ber_dump: buf=0x00167bc0 ptr=0x00167c17 end=0x00167c19 len=2
  0000:  30 00                                              0.
    attrs:
conn=0 op=7 SRCH base="dc=webedi,dc=newtron,dc=net" scope=2 filter="(&(objectCla
ss=*)(badfilter))"




As soon as we are using well-known attributes like cn or mail, or  change the original filter like below, everything works fine:

filter=(&(objectclass=*)(smartiSupplier=*))

In the last case, obviously a PRESENT Filter (LDAP_FILTER_PRESENT) is used instead of an EQUALITY Filter (LDAP_FILTER_EQUALITY) and then it works although the same custom attribute is used (smartiSupplier).

any idea ?

Nick