From: David A. P. <dpi...@un...> - 2001-06-06 14:07:17
|
I'm attempting to set up a virtual list view control, but I am running into some problems. Here is a code segment from some test code I am trying to use just to make the initial search work: -- $vlv = Net::LDAP::Control::VLV->new( before => 0, # No entries before target entry after => 2, # number of entries after target entry content => 0, # list size is unknown offset => 1, # Target entry is the first ); $mesg=$ldap->search( filter => '(&(|(|(sn=*) (givenname=*)) (mail=*))(objectclass=person))', base => 'ou=People,o=company.com', attrs => $anonAttr, control => [ $vlv ], ); ($resp) = $mesg->control( LDAP_CONTROL_VLVRESPONSE ) or die; $vlv->response( $resp ); -- When I run this as is, the program dies with the second to last line. If I comment out the last two lines, I get a message "search failed with 60." If I take the control out of the search completely, my search works correctly. Any advice as to what I am doing wrong or how I might debug it? Thanks in advance. -- David A. Pinkowitz UniPress Software, Inc. dpi...@un... (732) 287-2100 ext. 943 |
From: Graham B. <gb...@po...> - 2001-06-06 15:08:47
|
A VLV control must be used woth a sort control. You may be able to detect this in $mesg->code. But maybe not as the control is not critical so the server may just ignore it. Graham. On Wed, Jun 06, 2001 at 10:06:22AM -0400, David A. Pinkowitz wrote: > I'm attempting to set up a virtual list view control, but I am running into > some problems. Here is a code segment from some test code I am trying to > use just to make the initial search work: > > -- > $vlv = Net::LDAP::Control::VLV->new( > before => 0, # No entries before target entry > after => 2, # number of entries after target entry > content => 0, # list size is unknown > offset => 1, # Target entry is the first > ); > > $mesg=$ldap->search( > filter => '(&(|(|(sn=*) (givenname=*)) > (mail=*))(objectclass=person))', > base => 'ou=People,o=company.com', > attrs => $anonAttr, > control => [ $vlv ], > ); > > ($resp) = $mesg->control( LDAP_CONTROL_VLVRESPONSE ) or die; > $vlv->response( $resp ); > -- > > When I run this as is, the program dies with the second to last line. If I > comment out the last two lines, I get a message "search failed with > 60." If I take the control out of the search completely, my search works > correctly. Any advice as to what I am doing wrong or how I might debug > it? Thanks in advance. > > > > -- > David A. Pinkowitz > UniPress Software, Inc. > dpi...@un... > (732) 287-2100 ext. 943 > > > |
From: Chris R. <chr...@me...> - 2001-06-06 15:22:49
|
Graham Barr <gb...@po...> wrote: > > A VLV control must be used woth a sort control. You may be able to detect That makes sense - error 60 is Net::LDAP's LDAP_SORT_CONTROL_MISSING error. > On Wed, Jun 06, 2001 at 10:06:22AM -0400, David A. Pinkowitz wrote: [...] >> If I comment out the last two lines, I get a message "search failed >> with 60." If I take the control out of the search completely, my To understand the error codes (or at least convert them into text), look at the Net::LDAP::Util::ldap_error_name function, and the Net::LDAP::Constant module. Cheers, Chris |
From: David A. P. <dpi...@un...> - 2001-06-06 18:56:21
|
I've added the sort controls now. I have tested the sort control alone and it works. But with vlv it gives me trouble. Here is my new code: -- $vlv = Net::LDAP::Control::VLV->new( before => 0, # No entries before target entry after => 2, # number of entries after target entry content => 0, #If set to 0, list size is unknown offset => 1, # Target entry is the first ); $sort = Net::LDAP::Control::Sort->new( order => "sn givenname" ); $mesg=$ldap->search( filter => '(&(|(|(sn=*) (givenname=*)) (mail=*))(objectclass=person))', base => 'ou=People,o=company.com', attrs => $anonAttr, control => [ $sort, $vlv ], ); ($resp) = $mesg->control( LDAP_CONTROL_VLVRESPONSE ) or die; $vlv->response( $resp ); -- If I leave the last two lines on, I will die when getting the VLVRESPONSE. If I remove those lines, I get an error 1, which I understand is an LDAP Operations Error. I'm not sure what I'm doing wrong or what I should look for. I believe that I have copied sample code from the documentation correctly. Any advice? Thanks to those who have responded already. -- David A. Pinkowitz UniPress Software, Inc. dpi...@un... (732) 287-2100 ext. 943 |
From: Graham B. <gb...@po...> - 2001-06-06 19:41:22
|
Can you add $ldap->debug(15); just before the ->search and send the output on STDERR Graham. On Wed, Jun 06, 2001 at 02:55:23PM -0400, David A. Pinkowitz wrote: > I've added the sort controls now. I have tested the sort control alone and > it works. But with vlv it gives me trouble. Here is my new code: > > -- > $vlv = Net::LDAP::Control::VLV->new( > before => 0, # No entries before target entry > after => 2, # number of entries after target entry > content => 0, #If set to 0, list size is unknown > offset => 1, # Target entry is the first > ); > > $sort = Net::LDAP::Control::Sort->new( > order => "sn givenname" > ); > > $mesg=$ldap->search( > filter => '(&(|(|(sn=*) (givenname=*)) > (mail=*))(objectclass=person))', > base => 'ou=People,o=company.com', > attrs => $anonAttr, > control => [ $sort, $vlv ], > ); > > ($resp) = $mesg->control( LDAP_CONTROL_VLVRESPONSE ) or die; > $vlv->response( $resp ); > -- > > If I leave the last two lines on, I will die when getting the > VLVRESPONSE. If I remove those lines, I get an error 1, which I understand > is an LDAP Operations Error. I'm not sure what I'm doing wrong or what I > should look for. I believe that I have copied sample code from the > documentation correctly. Any advice? Thanks to those who have responded > already. > > > > -- > David A. Pinkowitz > UniPress Software, Inc. > dpi...@un... > (732) 287-2100 ext. 943 > > > |
From: David A. P. <dpi...@un...> - 2001-06-06 19:50:46
|
Here is the output: Net::LDAP=HASH(0xc3064) sending: 30 81 B3 02 01 02 63 5D 04 18 6F 75 3D 50 65 6F 0.....c]..ou=Peo 70 6C 65 2C 6F 3D 75 6E 69 70 72 65 73 73 2E 63 ple,o=unipress.c 6F 6D 0A 01 02 0A 01 02 02 01 00 02 01 00 01 01 om.............. 00 A0 30 A1 17 A1 0F 87 02 73 6E 87 09 67 69 76 ..0......sn..giv 65 6E 6E 61 6D 65 87 04 6D 61 69 6C A3 15 04 0B enname..mail.... 6F 62 6A 65 63 74 63 6C 61 73 73 04 06 70 65 72 objectclass..per 73 6F 6E 30 00 A0 4F 30 2F 04 16 31 2E 32 2E 38 son0..O0/..1.2.8 34 30 2E 31 31 33 35 35 36 2E 31 2E 34 2E 34 37 40.113556.1.4.47 33 04 15 30 13 30 04 04 02 73 6E 30 0B 04 09 67 3..0.0...sn0...g 69 76 65 6E 6E 61 6D 65 30 1C 04 17 32 2E 31 36 ivenname0...2.16 2E 38 34 30 2E 31 2E 31 31 33 37 33 30 2E 33 2E .840.1.113730.3. 34 2E 39 01 01 FF __ __ __ __ __ __ __ __ __ __ 4.9... 0000 30 179: SEQUENCE { 0003 02 1: INTEGER = 2 0006 63 93: [APPLICATION 3] { 0008 04 24: STRING = 'ou=People,o=unipress.com' 0022 0A 1: ENUM = 2 0025 0A 1: ENUM = 2 0028 02 1: INTEGER = 0 002B 02 1: INTEGER = 0 002E 01 1: BOOLEAN = FALSE 0031 A0 48: [CONTEXT 0] { 0033 A1 23: [CONTEXT 1] { 0035 A1 15: [CONTEXT 1] { 0037 87 2: [CONTEXT 7] 0039 : 73 6E __ __ __ __ __ __ __ __ __ __ __ __ __ __ sn 003B 87 9: [CONTEXT 7] 003D : 67 69 76 65 6E 6E 61 6D 65 __ __ __ __ __ __ __ givenn ame 0046 : } 0046 87 4: [CONTEXT 7] 0048 : 6D 61 69 6C __ __ __ __ __ __ __ __ __ __ __ __ mail 004C : } 004C A3 21: [CONTEXT 3] { 004E 04 11: STRING = 'objectclass' 005B 04 6: STRING = 'person' 0063 : } 0063 : } 0063 30 0: SEQUENCE { 0065 : } 0065 : } 0065 A0 79: [CONTEXT 0] { 0067 30 47: SEQUENCE { 0069 04 22: STRING = '1.2.840.113556.1.4.473' 0081 04 21: STRING 0083 : 30 13 30 04 04 02 73 6E 30 0B 04 09 67 69 76 65 0.0...sn0. ..give 0093 : 6E 6E 61 6D 65 __ __ __ __ __ __ __ __ __ __ __ nname 0098 : } 0098 30 28: SEQUENCE { 009A 04 23: STRING = '2.16.840.1.113730.3.4.9' 00B3 01 1: BOOLEAN = TRUE 00B6 : } 00B6 : } 00B6 : } Net::LDAP=HASH(0xc3064) received: 30 17 02 01 02 65 12 0A 01 01 04 00 04 0B 56 4C 0....e........VL 56 20 43 6F 6E 74 72 6F 6C __ __ __ __ __ __ __ V Control 0000 30 23: SEQUENCE { 0002 02 1: INTEGER = 2 0005 65 18: [APPLICATION 5] { 0007 0A 1: ENUM = 1 000A 04 0: STRING = '' 000C 04 11: STRING = 'VLV Control' 0019 : } 0019 : } search failed with 1 At 08:39 PM 6/6/01 +0100, Graham Barr wrote: >Can you add > > $ldap->debug(15); > >just before the ->search and send the output on STDERR > >Graham. > >On Wed, Jun 06, 2001 at 02:55:23PM -0400, David A. Pinkowitz wrote: > > I've added the sort controls now. I have tested the sort control alone > and > > it works. But with vlv it gives me trouble. Here is my new code: > > > > -- > > $vlv = Net::LDAP::Control::VLV->new( > > before => 0, # No entries before target entry > > after => 2, # number of entries after target entry > > content => 0, #If set to 0, list size is unknown > > offset => 1, # Target entry is the first > > ); > > > > $sort = Net::LDAP::Control::Sort->new( > > order => "sn givenname" > > ); > > > > $mesg=$ldap->search( > > filter => '(&(|(|(sn=*) (givenname=*)) > > (mail=*))(objectclass=person))', > > base => 'ou=People,o=company.com', > > attrs => $anonAttr, > > control => [ $sort, $vlv ], > > ); > > > > ($resp) = $mesg->control( LDAP_CONTROL_VLVRESPONSE ) or die; > > $vlv->response( $resp ); > > -- > > > > If I leave the last two lines on, I will die when getting the > > VLVRESPONSE. If I remove those lines, I get an error 1, which I > understand > > is an LDAP Operations Error. I'm not sure what I'm doing wrong or what I > > should look for. I believe that I have copied sample code from the > > documentation correctly. Any advice? Thanks to those who have responded > > already. > > > > > > > > -- > > David A. Pinkowitz > > UniPress Software, Inc. > > dpi...@un... > > (732) 287-2100 ext. 943 > > > > > > -- David A. Pinkowitz UniPress Software, Inc. dpi...@un... (732) 287-2100 ext. 943 |
From: Graham B. <gb...@po...> - 2001-06-06 20:04:27
|
On Wed, Jun 06, 2001 at 03:49:49PM -0400, David A. Pinkowitz wrote: > Here is the output: > 0098 30 28: SEQUENCE { > 009A 04 23: STRING = '2.16.840.1.113730.3.4.9' > 00B3 01 1: BOOLEAN = TRUE > 00B6 : } Hm, Thats wrong. It looks like VLV.pm and ASN.pm are out of sync. I will make a patch and post it soon. Graham. |
From: Graham B. <gb...@po...> - 2001-06-06 21:06:30
Attachments:
vlv.pat
|
Please try the attached patch. Graham. On Wed, Jun 06, 2001 at 09:02:34PM +0100, Graham Barr wrote: > On Wed, Jun 06, 2001 at 03:49:49PM -0400, David A. Pinkowitz wrote: > > Here is the output: > > > 0098 30 28: SEQUENCE { > > 009A 04 23: STRING = '2.16.840.1.113730.3.4.9' > > 00B3 01 1: BOOLEAN = TRUE > > 00B6 : } > > Hm, Thats wrong. > > It looks like VLV.pm and ASN.pm are out of sync. > > I will make a patch and post it soon. > > Graham. |
From: David A. P. <dpi...@un...> - 2001-06-07 14:24:13
|
At 10:04 PM 6/6/01 +0100, Graham Barr wrote: >Please try the attached patch. The patch appears to work. Thanks for all your help and especially the quick response. -- David A. Pinkowitz UniPress Software, Inc. dpi...@un... (732) 287-2100 ext. 943 |
From: David A. P. <dpi...@un...> - 2001-06-07 15:06:18
|
As I reported, the patch allowed me to make my search; however, at the time, I had commented out the lines getting the LDAP_CONTROL_VLVRESPONSE. When I uncomment them, I get the following error message: Can't call method "context" on an undefined value at ...VLV.pm line 107. That line is in sub response, which reads: "$asn->{contextID} = $resp->context;" Here is my code segment again: ############## $vlv = Net::LDAP::Control::VLV->new( before => 0, # No entries before target entry after => 1, # number of entries after target entry content => 0, #If set to 0, list size is unknown offset => 1, # Target entry is the first ); $sort = Net::LDAP::Control::Sort->new( order => "sn givenname" ); $mesg=$ldap->search( filter => '(&(|(|(sn=*) (givenname=*)) (mail=*))(objectclass=person))', base => 'ou=People,o=unipress.com', attrs => $anonAttr, control => [ $sort, $vlv ], #sets sort & vlv which works only in v.3 ); ($resp) = $mesg->control( LDAP_CONTROL_VLVRESPONSE ); $vlv->response( $resp ); ###################### The vlv control results in the correct output, but I fail when calling the second to last line as described above. Is there any debugging I should do or any place I should look for the error? Thank you in advance for any help you can give me. -- David A. Pinkowitz UniPress Software, Inc. dpi...@un... (732) 287-2100 ext. 943 |
From: Graham B. <gb...@po...> - 2001-06-07 15:51:58
|
Can you send the output from adding $ldap->debug(15) Thanks, Graham. On Thu, Jun 07, 2001 at 11:05:09AM -0400, David A. Pinkowitz wrote: > As I reported, the patch allowed me to make my search; however, at the > time, I had commented out the lines getting the > LDAP_CONTROL_VLVRESPONSE. When I uncomment them, I get the following error > message: > > Can't call method "context" on an undefined value at ...VLV.pm line 107. > > That line is in sub response, which reads: "$asn->{contextID} = > $resp->context;" > > Here is my code segment again: > > ############## > $vlv = Net::LDAP::Control::VLV->new( > before => 0, # No entries before target entry > after => 1, # number of entries after target entry > content => 0, #If set to 0, list size is unknown > offset => 1, # Target entry is the first > ); > > $sort = Net::LDAP::Control::Sort->new( > order => "sn givenname" > ); > > $mesg=$ldap->search( > filter => '(&(|(|(sn=*) (givenname=*)) > (mail=*))(objectclass=person))', > base => 'ou=People,o=unipress.com', > attrs => $anonAttr, > control => [ $sort, $vlv ], #sets sort & vlv which works only in v.3 > ); > > ($resp) = $mesg->control( LDAP_CONTROL_VLVRESPONSE ); > $vlv->response( $resp ); > ###################### > > The vlv control results in the correct output, but I fail when calling the > second to last line as described above. Is there any debugging I should do > or any place I should look for the error? > > Thank you in advance for any help you can give me. > > > > -- > David A. Pinkowitz > UniPress Software, Inc. > dpi...@un... > (732) 287-2100 ext. 943 > |
From: David A. P. <dpi...@un...> - 2001-06-07 17:17:05
|
At 04:50 PM 6/7/01 +0100, Graham Barr wrote: >Can you send the output from adding $ldap->debug(15) > >Thanks, >Graham. Net::LDAP=HASH(0xc3064) sending: 30 81 C5 02 01 02 63 5D 04 18 6F 75 3D 50 65 6F 0.....c]..ou=Peo 70 6C 65 2C 6F 3D 75 6E 69 70 72 65 73 73 2E 63 ple,o=unipress.c 6F 6D 0A 01 02 0A 01 02 02 01 00 02 01 00 01 01 om.............. 00 A0 30 A1 17 A1 0F 87 02 73 6E 87 09 67 69 76 ..0......sn..giv 65 6E 6E 61 6D 65 87 04 6D 61 69 6C A3 15 04 0B enname..mail.... 6F 62 6A 65 63 74 63 6C 61 73 73 04 06 70 65 72 objectclass..per 73 6F 6E 30 00 A0 61 30 2F 04 16 31 2E 32 2E 38 son0..a0/..1.2.8 34 30 2E 31 31 33 35 35 36 2E 31 2E 34 2E 34 37 40.113556.1.4.47 33 04 15 30 13 30 04 04 02 73 6E 30 0B 04 09 67 3..0.0...sn0...g 69 76 65 6E 6E 61 6D 65 30 2E 04 17 32 2E 31 36 ivenname0...2.16 2E 38 34 30 2E 31 2E 31 31 33 37 33 30 2E 33 2E .840.1.113730.3. 34 2E 39 01 01 FF 04 10 30 0E 02 01 00 02 01 01 4.9.....0....... A0 06 02 01 01 02 01 00 __ __ __ __ __ __ __ __ ........ 0000 30 197: SEQUENCE { 0003 02 1: INTEGER = 2 0006 63 93: [APPLICATION 3] { 0008 04 24: STRING = 'ou=People,o=unipress.com' 0022 0A 1: ENUM = 2 0025 0A 1: ENUM = 2 0028 02 1: INTEGER = 0 002B 02 1: INTEGER = 0 002E 01 1: BOOLEAN = FALSE 0031 A0 48: [CONTEXT 0] { 0033 A1 23: [CONTEXT 1] { 0035 A1 15: [CONTEXT 1] { 0037 87 2: [CONTEXT 7] 0039 : 73 6E __ __ __ __ __ __ __ __ __ __ __ __ __ __ sn 003B 87 9: [CONTEXT 7] 003D : 67 69 76 65 6E 6E 61 6D 65 __ __ __ __ __ __ __ givenn ame 0046 : } 0046 87 4: [CONTEXT 7] 0048 : 6D 61 69 6C __ __ __ __ __ __ __ __ __ __ __ __ mail 004C : } 004C A3 21: [CONTEXT 3] { 004E 04 11: STRING = 'objectclass' 005B 04 6: STRING = 'person' 0063 : } 0063 : } 0063 30 0: SEQUENCE { 0065 : } 0065 : } 0065 A0 97: [CONTEXT 0] { 0067 30 47: SEQUENCE { 0069 04 22: STRING = '1.2.840.113556.1.4.473' 0081 04 21: STRING 0083 : 30 13 30 04 04 02 73 6E 30 0B 04 09 67 69 76 65 0.0...sn0. ..give 0093 : 6E 6E 61 6D 65 __ __ __ __ __ __ __ __ __ __ __ nname 0098 : } 0098 30 46: SEQUENCE { 009A 04 23: STRING = '2.16.840.1.113730.3.4.9' 00B3 01 1: BOOLEAN = TRUE 00B6 04 16: STRING 00B8 : 30 0E 02 01 00 02 01 01 A0 06 02 01 01 02 01 00 0......... ...... 00C8 : } 00C8 : } 00C8 : } Net::LDAP=HASH(0xc3064) received: 30 82 02 0E 02 01 02 64 82 02 07 04 26 75 69 64 0......d....&uid 3D 52 41 63 63 61 72 64 69 2C 6F 75 3D 50 65 6F =RAccardi,ou=Peo 70 6C 65 2C 20 6F 3D 75 6E 69 70 72 65 73 73 2E ple, o=unipress. 63 6F 6D 30 82 01 DB 30 1F 04 04 6D 61 69 6C 31 com0...0...mail1 17 04 15 72 61 63 63 61 72 64 69 40 75 6E 69 70 ...raccardi@unip 72 65 73 73 2E 63 6F 6D 30 41 04 0B 6F 62 6A 65 ress.com0A..obje 63 74 63 6C 61 73 73 31 32 04 03 74 6F 70 04 06 ctclass12..top.. 70 65 72 73 6F 6E 04 14 6F 72 67 61 6E 69 7A 61 person..organiza 74 69 6F 6E 61 6C 50 65 72 73 6F 6E 04 0D 69 6E tionalPerson..in 65 74 6F 72 67 70 65 72 73 6F 6E 30 13 04 02 63 etorgperson0...c 6E 31 0D 04 0B 52 6F 62 20 41 63 63 61 72 64 69 n1...Rob Accardi 30 11 04 03 75 69 64 31 0A 04 08 52 41 63 63 61 0...uid1...RAcca 72 64 69 30 12 04 09 67 69 76 65 6E 6E 61 6D 65 rdi0...givenname 31 05 04 03 52 6F 62 30 0F 04 02 73 6E 31 09 04 1...Rob0...sn1.. 07 41 63 63 61 72 64 69 30 33 04 0C 75 73 65 72 .Accardi03..user 70 61 73 73 77 6F 72 64 31 23 04 21 7B 53 48 41 password1#.!{SHA 7D 35 6A 74 51 38 75 71 57 63 73 61 62 56 31 71 }5jtQ8uqWcsabV1q 6B 4F 5A 50 59 49 63 6F 4F 74 44 45 3D 30 52 04 kOZPYIcoOtDE=0R. 0C 63 72 65 61 74 6F 72 73 6E 61 6D 65 31 42 04 .creatorsname1B. 40 75 69 64 3D 61 64 6D 69 6E 2C 6F 75 3D 41 64 @uid=admin,ou=Ad 6D 69 6E 69 73 74 72 61 74 6F 72 73 2C 6F 75 3D ministrators,ou= 54 6F 70 6F 6C 6F 67 79 4D 61 6E 61 67 65 6D 65 TopologyManageme 6E 74 2C 6F 3D 4E 65 74 73 63 61 70 65 52 6F 6F nt,o=NetscapeRoo 74 30 53 04 0D 6D 6F 64 69 66 69 65 72 73 6E 61 t0S..modifiersna 6D 65 31 42 04 40 75 69 64 3D 61 64 6D 69 6E 2C me1B.@uid=admin, 6F 75 3D 41 64 6D 69 6E 69 73 74 72 61 74 6F 72 ou=Administrator 73 2C 6F 75 3D 54 6F 70 6F 6C 6F 67 79 4D 61 6E s,ou=TopologyMan 61 67 65 6D 65 6E 74 2C 6F 3D 4E 65 74 73 63 61 agement,o=Netsca 70 65 52 6F 6F 74 30 24 04 0F 63 72 65 61 74 65 peRoot0$..create 74 69 6D 65 73 74 61 6D 70 31 11 04 0F 32 30 30 timestamp1...200 30 31 31 30 33 32 30 33 31 34 39 5A 30 24 04 0F 01103203149Z0$.. 6D 6F 64 69 66 79 74 69 6D 65 73 74 61 6D 70 31 modifytimestamp1 11 04 0F 32 30 30 30 31 31 30 33 32 30 33 31 34 ...2000110320314 39 5A __ __ __ __ __ __ __ __ __ __ __ __ __ __ 9Z 0000 30 526: SEQUENCE { 0004 02 1: INTEGER = 2 0007 64 519: [APPLICATION 4] { 000B 04 38: STRING = 'uid=RAccardi,ou=People, o=unipress.com' 0033 30 475: SEQUENCE { 0037 30 31: SEQUENCE { 0039 04 4: STRING = 'mail' 003F 31 23: SET { 0041 04 21: STRING = 'rac...@un...' 0058 : } 0058 : } 0058 30 65: SEQUENCE { 005A 04 11: STRING = 'objectclass' 0067 31 50: SET { 0069 04 3: STRING = 'top' 006E 04 6: STRING = 'person' 0076 04 20: STRING = 'organizationalPerson' 008C 04 13: STRING = 'inetorgperson' 009B : } 009B : } 009B 30 19: SEQUENCE { 009D 04 2: STRING = 'cn' 00A1 31 13: SET { 00A3 04 11: STRING = 'Rob Accardi' 00B0 : } 00B0 : } 00B0 30 17: SEQUENCE { 00B2 04 3: STRING = 'uid' 00B7 31 10: SET { 00B9 04 8: STRING = 'RAccardi' 00C3 : } 00C3 : } 00C3 30 18: SEQUENCE { 00C5 04 9: STRING = 'givenname' 00D0 31 5: SET { 00D2 04 3: STRING = 'Rob' 00D7 : } 00D7 : } 00D7 30 15: SEQUENCE { 00D9 04 2: STRING = 'sn' 00DD 31 9: SET { 00DF 04 7: STRING = 'Accardi' 00E8 : } 00E8 : } 00E8 30 51: SEQUENCE { 00EA 04 12: STRING = 'userpassword' 00F8 31 35: SET { 00FA 04 33: STRING = '{SHA}5jtQ8uqWcsabV1qkOZPYIcoOtDE=' 011D : } 011D : } 011D 30 82: SEQUENCE { 011F 04 12: STRING = 'creatorsname' 012D 31 66: SET { 012F 04 64: STRING = 'uid=admin,ou=Administrators,ou=TopologyManagem ent,o=NetscapeRoot' 0171 : } 0171 : } 0171 30 83: SEQUENCE { 0173 04 13: STRING = 'modifiersname' 0182 31 66: SET { 0184 04 64: STRING = 'uid=admin,ou=Administrators,ou=TopologyManagem ent,o=NetscapeRoot' 01C6 : } 01C6 : } 01C6 30 36: SEQUENCE { 01C8 04 15: STRING = 'createtimestamp' 01D9 31 17: SET { 01DB 04 15: STRING = '20001103203149Z' 01EC : } 01EC : } 01EC 30 36: SEQUENCE { 01EE 04 15: STRING = 'modifytimestamp' 01FF 31 17: SET { 0201 04 15: STRING = '20001103203149Z' 0212 : } 0212 : } 0212 : } 0212 : } 0212 : } Net::LDAP=HASH(0xc3064) received: 30 82 01 BB 02 01 02 64 82 01 B4 04 27 75 69 64 0......d....'uid 3D 41 4B 72 69 65 67 65 72 2C 20 6F 75 3D 70 65 =AKrieger, ou=pe 6F 70 6C 65 2C 20 6F 3D 75 6E 69 70 72 65 73 73 ople, o=unipress 2E 63 6F 6D 30 82 01 87 30 11 04 03 75 69 64 31 .com0...0...uid1 0A 04 08 41 4B 72 69 65 67 65 72 30 14 04 02 63 ...AKrieger0...c 6E 31 0E 04 0C 41 6C 61 6E 20 4B 72 69 65 67 65 n1...Alan Kriege 72 30 0F 04 02 73 6E 31 09 04 07 4B 72 69 65 67 r0...sn1...Krieg 65 72 30 13 04 09 67 69 76 65 6E 6E 61 6D 65 31 er0...givenname1 06 04 04 41 6C 61 6E 30 41 04 0B 6F 62 6A 65 63 ...Alan0A..objec 74 63 6C 61 73 73 31 32 04 03 74 6F 70 04 06 70 tclass12..top..p 65 72 73 6F 6E 04 14 6F 72 67 61 6E 69 7A 61 74 erson..organizat 69 6F 6E 61 6C 50 65 72 73 6F 6E 04 0D 69 6E 65 ionalPerson..ine 74 4F 72 67 50 65 72 73 6F 6E 30 52 04 0C 63 72 tOrgPerson0R..cr 65 61 74 6F 72 73 6E 61 6D 65 31 42 04 40 75 69 eatorsname1B.@ui 64 3D 61 64 6D 69 6E 2C 6F 75 3D 41 64 6D 69 6E d=admin,ou=Admin 69 73 74 72 61 74 6F 72 73 2C 6F 75 3D 54 6F 70 istrators,ou=Top 6F 6C 6F 67 79 4D 61 6E 61 67 65 6D 65 6E 74 2C ologyManagement, 6F 3D 4E 65 74 73 63 61 70 65 52 6F 6F 74 30 53 o=NetscapeRoot0S 04 0D 6D 6F 64 69 66 69 65 72 73 6E 61 6D 65 31 ..modifiersname1 42 04 40 75 69 64 3D 61 64 6D 69 6E 2C 6F 75 3D B.@uid=admin,ou= 41 64 6D 69 6E 69 73 74 72 61 74 6F 72 73 2C 6F Administrators,o 75 3D 54 6F 70 6F 6C 6F 67 79 4D 61 6E 61 67 65 u=TopologyManage 6D 65 6E 74 2C 6F 3D 4E 65 74 73 63 61 70 65 52 ment,o=NetscapeR 6F 6F 74 30 24 04 0F 63 72 65 61 74 65 74 69 6D oot0$..createtim 65 73 74 61 6D 70 31 11 04 0F 32 30 30 30 31 31 estamp1...200011 32 30 32 31 31 32 31 36 5A 30 24 04 0F 6D 6F 64 20211216Z0$..mod 69 66 79 74 69 6D 65 73 74 61 6D 70 31 11 04 0F ifytimestamp1... 32 30 30 30 31 31 32 30 32 31 31 32 31 36 5A __ 20001120211216Z 0000 30 443: SEQUENCE { 0004 02 1: INTEGER = 2 0007 64 436: [APPLICATION 4] { 000B 04 39: STRING = 'uid=AKrieger, ou=people, o=unipress.com' 0034 30 391: SEQUENCE { 0038 30 17: SEQUENCE { 003A 04 3: STRING = 'uid' 003F 31 10: SET { 0041 04 8: STRING = 'AKrieger' 004B : } 004B : } 004B 30 20: SEQUENCE { 004D 04 2: STRING = 'cn' 0051 31 14: SET { 0053 04 12: STRING = 'Alan Krieger' 0061 : } 0061 : } 0061 30 15: SEQUENCE { 0063 04 2: STRING = 'sn' 0067 31 9: SET { 0069 04 7: STRING = 'Krieger' 0072 : } 0072 : } 0072 30 19: SEQUENCE { 0074 04 9: STRING = 'givenname' 007F 31 6: SET { 0081 04 4: STRING = 'Alan' 0087 : } 0087 : } 0087 30 65: SEQUENCE { 0089 04 11: STRING = 'objectclass' 0096 31 50: SET { 0098 04 3: STRING = 'top' 009D 04 6: STRING = 'person' 00A5 04 20: STRING = 'organizationalPerson' 00BB 04 13: STRING = 'inetOrgPerson' 00CA : } 00CA : } 00CA 30 82: SEQUENCE { 00CC 04 12: STRING = 'creatorsname' 00DA 31 66: SET { 00DC 04 64: STRING = 'uid=admin,ou=Administrators,ou=TopologyManagem ent,o=NetscapeRoot' 011E : } 011E : } 011E 30 83: SEQUENCE { 0120 04 13: STRING = 'modifiersname' 012F 31 66: SET { 0131 04 64: STRING = 'uid=admin,ou=Administrators,ou=TopologyManagem ent,o=NetscapeRoot' 0173 : } 0173 : } 0173 30 36: SEQUENCE { 0175 04 15: STRING = 'createtimestamp' 0186 31 17: SET { 0188 04 15: STRING = '20001120211216Z' 0199 : } 0199 : } 0199 30 36: SEQUENCE { 019B 04 15: STRING = 'modifytimestamp' 01AC 31 17: SET { 01AE 04 15: STRING = '20001120211216Z' 01BF : } 01BF : } 01BF : } 01BF : } 01BF : } Net::LDAP=HASH(0xc3064) received: 30 0C 02 01 02 65 07 0A 01 00 04 00 04 00 __ __ 0....e........ 0000 30 12: SEQUENCE { 0002 02 1: INTEGER = 2 0005 65 7: [APPLICATION 5] { 0007 0A 1: ENUM = 0 000A 04 0: STRING = '' 000C 04 0: STRING = '' 000E : } 000E : } Can't call method "context" on an undefined value at /usr/local/lib/perl5/site_p erl/5.005/Net/LDAP/Control/VLV.pm line 107. -- David A. Pinkowitz UniPress Software, Inc. dpi...@un... (732) 287-2100 ext. 943 |
From: Graham B. <gb...@po...> - 2001-06-07 17:35:34
|
On Thu, Jun 07, 2001 at 01:15:54PM -0400, David A. Pinkowitz wrote: > At 04:50 PM 6/7/01 +0100, Graham Barr wrote: > >Can you send the output from adding $ldap->debug(15) > > > >Thanks, > >Graham. > Net::LDAP=HASH(0xc3064) received: > > 30 0C 02 01 02 65 07 0A 01 00 04 00 04 00 __ __ 0....e........ > > 0000 30 12: SEQUENCE { > 0002 02 1: INTEGER = 2 > 0005 65 7: [APPLICATION 5] { > 0007 0A 1: ENUM = 0 > 000A 04 0: STRING = '' > 000C 04 0: STRING = '' > 000E : } > 000E : } > Can't call method "context" on an undefined value at > /usr/local/lib/perl5/site_p > erl/5.005/Net/LDAP/Control/VLV.pm line 107. Your server did not return a VLV_RESPONSE control It should have passed back a control which holds info about where the entries returned are in the list. Graham. |
From: David A. P. <dpi...@un...> - 2001-06-07 18:30:26
|
At 06:33 PM 6/7/01 +0100, Graham Barr wrote: >Your server did not return a VLV_RESPONSE control > >It should have passed back a control which holds info about >where the entries returned are in the list. Is this typically a server configuration issue or would it just be that the server does not support these controls? Could I have done something wrong prior to making my search? It seems odd that the server could recognize the VLV control and return the correct data, but not generate the VLV_RESPONSE. Thanks again for all your help. -- David A. Pinkowitz UniPress Software, Inc. dpi...@un... (732) 287-2100 ext. 943 |
From: Chris R. <chr...@me...> - 2001-06-08 07:11:42
|
"David A. Pinkowitz" <dpi...@un...> wrote: > At 06:33 PM 6/7/01 +0100, Graham Barr wrote: >> Your server did not return a VLV_RESPONSE control >> >> It should have passed back a control which holds info about >> where the entries returned are in the list. > > Is this typically a server configuration issue or would it just be that > the server does not support these controls? Could I have done something > wrong prior to making my search? It seems odd that the server could > recognize the VLV control and return the correct data, but not generate > the VLV_RESPONSE. Thanks again for all your help. The server is free to ignore any controls that are not marked as 'critical'. You may want to create it this way and see what happens: $vlv = Net::LDAP::Control::VLV->new( before => 0, # No entries before target entry after => 1, # number of entries after target entry content => 0, #If set to 0, list size is unknown offset => 1, # Target entry is the first critical => 1 # Return an error if VLV is not permitted ); Cheers, Chris |
From: Graham B. <gb...@po...> - 2001-06-08 07:17:10
|
On Fri, Jun 08, 2001 at 08:11:17AM +0100, Chris Ridd wrote: > "David A. Pinkowitz" <dpi...@un...> wrote: > > At 06:33 PM 6/7/01 +0100, Graham Barr wrote: > >> Your server did not return a VLV_RESPONSE control > >> > >> It should have passed back a control which holds info about > >> where the entries returned are in the list. > > > > Is this typically a server configuration issue or would it just be that > > the server does not support these controls? Could I have done something > > wrong prior to making my search? It seems odd that the server could > > recognize the VLV control and return the correct data, but not generate > > the VLV_RESPONSE. Thanks again for all your help. > > The server is free to ignore any controls that are not marked as > 'critical'. You may want to create it this way and see what happens: A VLV control is critical by default, unless specified. So this should not make a difference. Graham. > > $vlv = Net::LDAP::Control::VLV->new( > before => 0, # No entries before target entry > after => 1, # number of entries after target entry > content => 0, #If set to 0, list size is unknown > offset => 1, # Target entry is the first > critical => 1 # Return an error if VLV is not permitted > ); > > Cheers, > > Chris |
From: Chris R. <chr...@me...> - 2001-06-08 08:15:32
|
Graham Barr <gb...@po...> wrote: > On Fri, Jun 08, 2001 at 08:11:17AM +0100, Chris Ridd wrote: >> "David A. Pinkowitz" <dpi...@un...> wrote: >> > At 06:33 PM 6/7/01 +0100, Graham Barr wrote: >> >> Your server did not return a VLV_RESPONSE control >> >> >> >> It should have passed back a control which holds info about >> >> where the entries returned are in the list. >> > >> > Is this typically a server configuration issue or would it just be that >> > the server does not support these controls? Could I have done >> > something wrong prior to making my search? It seems odd that the >> > server could recognize the VLV control and return the correct data, >> > but not generate the VLV_RESPONSE. Thanks again for all your help. >> >> The server is free to ignore any controls that are not marked as >> 'critical'. You may want to create it this way and see what happens: > > A VLV control is critical by default, unless specified. So this should > not make a difference. > > Graham. I just looked at VLV.pm and you're right. Cheers, Chris |
From: David A. P. <dpi...@un...> - 2001-06-07 20:35:29
|
As a followup to my last post, I am using Netscape Directory Server 4. In addition, I have tried a similar search on Active Directory. Does something special have to be done to the server to get VLV support? Is there a list somewhere of servers that do and don't have VLV support? I am trying to implement LDAP capability in an application which may be used by customers with any number of different LDAP servers and configurations. In its original form, my application was limited by the server limits set for a search, returning a maximum perhaps of 1000 or 2000 entries. I was trying to overcome this limit by using VLV. Is there enough compatibility among various servers to even implement this right now? Thanks again for all the help that has been given thus far. I've been lurking on this list for awhile as well as searching its archives and it has been really helpful. -- David A. Pinkowitz UniPress Software, Inc. dpi...@un... (732) 287-2100 ext. 943 |
From: Graham B. <gb...@po...> - 2001-06-07 20:57:06
|
On Thu, Jun 07, 2001 at 04:34:07PM -0400, David A. Pinkowitz wrote: > As a followup to my last post, I am using Netscape Directory Server 4. In > addition, I have tried a similar search on Active Directory. Does > something special have to be done to the server to get VLV support? Is Do you bind with version => 3 ? > there a list somewhere of servers that do and don't have VLV support? The rootDSE should list all the supported controls. you can get this with $ldap->root_dse > I am trying to implement LDAP capability in an application which may be > used by customers with any number of different LDAP servers and > configurations. In its original form, my application was limited by the > server limits set for a search, returning a maximum perhaps of 1000 or 2000 > entries. I was trying to overcome this limit by using VLV. Is there > enough compatibility among various servers to even implement this right now? Hm, well the VLV spec is still in draft form. So I am not sure you can expect to have a wide range of servers supporting it, but I may be wrong. > Thanks again for all the help that has been given thus far. I've been > lurking on this list for awhile as well as searching its archives and it > has been really helpful. Graham. |
From: David A. P. <dpi...@un...> - 2001-06-07 22:08:17
|
At 09:55 PM 6/7/01 +0100, you wrote: >On Thu, Jun 07, 2001 at 04:34:07PM -0400, David A. Pinkowitz wrote: > > As a followup to my last post, I am using Netscape Directory Server 4. In > > addition, I have tried a similar search on Active Directory. Does > > something special have to be done to the server to get VLV support? Is > >Do you bind with version => 3 ? I changed that and it worked. Thanks for your help. -- David A. Pinkowitz UniPress Software, Inc. dpi...@un... (732) 287-2100 ext. 943 |