Description of problem: Bitwise filter doesn't return the entries if the entry is defined as multivalued. Version-Release number of selected component (if applicable): DS9.0 build dated 08/20. How reproducible: Consistently. Steps to Reproduce: Define schema to create user entries with bit fields. --------------------------------------- dn: cn=schema changetype: modify add: attributeTypes attributeTypes: ( NAME 'testUserAccountControl' DESC 'Attribute Bitwise filteri-Multi-Valued' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) attributeTypes: ( NAME 'testUserStatus' DESC 'State of User account active/disabled' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) dn: cn=schema changetype: modify add: objectClasses objectClasses: ( NAME 'testperson' SUP top STRUCTURAL MUST ( sn $ cn $ testUserAccountControl $ testUserStatus ) MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) X-ORIGIN 'BitWise' ) --------------------------------------- Create users with testUserAccountControl attribute as follows. declare multiple values for testUserAccountControl. # btestuser3, example.com dn: uid=btestuser3,dc=example,dc=com mail: btestuser3 uid: btestuser3 givenName: bit objectClass: top objectClass: bitwisePerson objectClass: organizationalPerson objectClass: inetorgperson objectClass: person sn: testuser3 cn: bit testuser3 testUserAccountControl: 1 testUserAccountControl: 8388608 testUserAccountControl: 512 userPassword:: e1NTSEF9TGZvbHRrYitjck1DUVVDNDlSdTVGcGViV0d0bXZ3aGtWZEJZYlE9PQ= Write a bitwise search filter as below. I can only successfully search for the first defined attribute. This works .. ldapsearch -x -D "cn=Directory Manager" -w Secret123 -b "dc=example,dc=com" "(testUserAccountControl:1.2.840.113556.1.4.803:=1)" This returns nothing ... ldapsearch -x -D "cn=Directory Manager" -w Secret123 -b "dc=example,dc=com" "(testUserAccountControl:1.2.840.113556.1.4.803:=8388608)" g
Created attachment 362701 [details] patch
To ssh://git.fedorahosted.org/git/389/ds.git ff7d08d..b5b57df master -> master commit b5b57df80f5a01774f85d174979dc1deea4f5724 Author: Rich Megginson <rmeggins> Date: Fri Sep 25 11:44:22 2009 -0600 Reviewed by: nhosoi (Thanks!) Fix Description: Get the values as a char ** - look through each one until we find one that matches. Platforms tested: RHEL5 x86_64 Flag Day: no Doc impact: no
verified - Solaris 9 version: pkginfo -l RHATredhat-dsx-base PKGINST: RHATredhat-dsx-base NAME: Red Hat Directory Server CATEGORY: application ARCH: sparcv9 VERSION: 8.2.0,REV=2010.05.12.04.34.47 BASEDIR: / DESC: Red Hat Directory Server PSTAMP: sun-t1k-02.idm.lab.bos.redhat.com20100512013448 INSTDATE: May 13 2010 10:46 STATUS: completely installed FILES: 285 installed pathnames 25 shared pathnames 36 directories 108 executables 18323 blocks used (approx) ALL Three value searches return user with multi valued attribute. bash-2.05# /usr/lib/sparcv9/mozldap6/ldapsearch -h host.example.com -p 389 -D "cn=Directory Manager" -w Secret -b "dc=example,dc=com" "(testUserAccountControl:1.2.840.113556.1.4.803:=89536)" version: 1 dn: uid=btestuser10,dc=example,dc=com mail: btestuser10 uid: btestuser10 givenName: bit objectClass: top objectClass: testperson objectClass: organizationalPerson objectClass: inetorgperson objectClass: person sn: testuser10 cn: bit testuser10 testUserAccountControl: 89536 testUserAccountControl: 97546 testUserAccountControl: 96579 testUserStatus: TestVerify1 testUserStatus: TestVerify2 testUserStatus: TestVerify3 userPassword: {SSHA}KLt0taK2ZpnnB06Yd2TgG7Llow7sJaIkYicjIg== bash-2.05# /usr/lib/sparcv9/mozldap6/ldapsearch -h host.example.com -p 389 -D "cn=Directory Manager" -w Secret -b "dc=example,dc=com" "(testUserAccountControl:1.2.840.113556.1.4.803:=97546)" version: 1 dn: uid=btestuser10,dc=example,dc=com mail: btestuser10 uid: btestuser10 givenName: bit objectClass: top objectClass: testperson objectClass: organizationalPerson objectClass: inetorgperson objectClass: person sn: testuser10 cn: bit testuser10 testUserAccountControl: 89536 testUserAccountControl: 97546 testUserAccountControl: 96579 testUserStatus: TestVerify1 testUserStatus: TestVerify2 testUserStatus: TestVerify3 userPassword: {SSHA}KLt0taK2ZpnnB06Yd2TgG7Llow7sJaIkYicjIg== bash-2.05# /usr/lib/sparcv9/mozldap6/ldapsearch -h host.example.com -p 389 -D "cn=Directory Manager" -w Secret -b "dc=example,dc=com" "(testUserAccountControl:1.2.840.113556.1.4.803:=96579)" version: 1 dn: uid=btestuser10,dc=example,dc=com mail: btestuser10 uid: btestuser10 givenName: bit objectClass: top objectClass: testperson objectClass: organizationalPerson objectClass: inetorgperson objectClass: person sn: testuser10 cn: bit testuser10 testUserAccountControl: 89536 testUserAccountControl: 97546 testUserAccountControl: 96579 testUserStatus: TestVerify1 testUserStatus: TestVerify2 testUserStatus: TestVerify3 userPassword: {SSHA}KLt0taK2ZpnnB06Yd2TgG7Llow7sJaIkYicjIg==