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

Re: virtual list view, control value absent



Dieter Kluenter wrote:
Hi,
I am experimenting with server side sorting and virtual list
view. While SSS does what it should do, vlv provides some
headaches. Although sss control and vlv control are passed to the
server, I get following error:

,----[ slapd debug output ]
| =>  get_ctrls: oid="1.2.840.113556.1.4.473" (critical)
| =>  get_ctrls: oid="2.16.840.1.113730.3.4.9" (critical)
|<= get_ctrls: n=2 rc=2 err="vlv control value is absent"
`----

What kind of vlv control value is missing?

My vlv object, written in perl, is:

,----[ vlv object ]
| $vlv = Net::LDAP::Control::VLV->new(
| 		 after   =>  1,
| 		 before  =>  0,
| 		 content =>  0,
| 		 offset  =>  1,
| 		 critical =>  'TRUE',
| 	       );
`----

The error message indicates that none of the after/before/content/offset parameters are present in the control that the server received. You should probably start by looking at the packet debug output on slapd to see what it actually received. I suspect Net::LDAP is not generating this control correctly.

You can also test with ldapsearch. This control parsing stuff is all done generically by the slapd frontend and it's known to be correct since OpenLDAP 2.0 days...


my sss object looks like

,----[ sss object ]
| $sort = Net::LDAP::Control::Sort->new(
| 		 order    =>  'sn:2.5.13.3',
|                  critical =>  'TRUE',
|               );
`----


my search object:

,----[ search object ]
| my @args = (
| 	    base =>  'ou=benchmark,o=avci,c=de',
| 	    scope =>  'one',
| 	    attrs =>  [ "$attrs[0]","$attrs[1]","$attrs[2]" ]);
| 	    filter =>  $filter,
| 	    control =>  [ $sort, $vlv ],
| 	  );
| $msg = $ldap->search( @args );
`----

-Dieter



--
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/