[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

LDAP searches don't stop

Bart Braem

8/17/2006 2:08:00 PM

Hello,

I'm trying to figure out how to search an LDAP server. I can connect and I
see searches pass by if I sniff on the network interface. But the search
command never stops, even tough I limit it to 1 second. (Can I limit the
search to 1 result?)

irb(main):001:0> require 'ldap'
=> true
irb(main):002:0> conn = LDAP::Conn.new("someldapserver", 389)
=> #<LDAP::Conn:0xb7afb900>
irb(main):003:0> conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
=> #<LDAP::Conn:0xb7afb900>
irb(main):004:0> conn.bind("ldapusername", "ldappassword")
=> #<LDAP::Conn:0xb7afb900>
irb(main):005:0> conn.search2("dc=somedc",
LDAP::LDAP_SCOPE_SUBTREE, "somefilter", nil,false, 1)

This keeps running forever instead of for 1 second...
Any ideas on how to solve that? I see a right result coming over the network
interface so the program can stop!

Regards,
Bart
5 Answers

Francis Cianfrocca

8/17/2006 2:21:00 PM

0

On 8/17/06, Bart Braem <bart.braem@gmail.com> wrote:
> Hello,
>
> I'm trying to figure out how to search an LDAP server. I can connect and I
> see searches pass by if I sniff on the network interface. But the search
> command never stops, even tough I limit it to 1 second. (Can I limit the
> search to 1 result?)
>
> irb(main):001:0> require 'ldap'
> => true
> irb(main):002:0> conn = LDAP::Conn.new("someldapserver", 389)
> => #<LDAP::Conn:0xb7afb900>
> irb(main):003:0> conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
> => #<LDAP::Conn:0xb7afb900>
> irb(main):004:0> conn.bind("ldapusername", "ldappassword")
> => #<LDAP::Conn:0xb7afb900>
> irb(main):005:0> conn.search2("dc=somedc",
> LDAP::LDAP_SCOPE_SUBTREE, "somefilter", nil,false, 1)
>
> This keeps running forever instead of for 1 second...
> Any ideas on how to solve that? I see a right result coming over the network
> interface so the program can stop!
>
> Regards,
> Bart
>
>

What happens if you use ldapsearch against this server? What happens
if you use Net::LDAP?

Bart Braem

8/17/2006 2:43:00 PM

0

Francis Cianfrocca wrote:
> What happens if you use ldapsearch against this server?

ldapsearch works fine and fast.

Bart

Bart Braem

8/17/2006 3:00:00 PM

0

Bart Braem wrote:

> Hello,
>
> I'm trying to figure out how to search an LDAP server. I can connect and I
> see searches pass by if I sniff on the network interface. But the search
> command never stops, even tough I limit it to 1 second. (Can I limit the
> search to 1 result?)
>
> irb(main):001:0> require 'ldap'
> => true
> irb(main):002:0> conn = LDAP::Conn.new("someldapserver", 389)
> => #<LDAP::Conn:0xb7afb900>
> irb(main):003:0> conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
> => #<LDAP::Conn:0xb7afb900>
> irb(main):004:0> conn.bind("ldapusername", "ldappassword")
> => #<LDAP::Conn:0xb7afb900>
> irb(main):005:0> conn.search2("dc=somedc",
> LDAP::LDAP_SCOPE_SUBTREE, "somefilter", nil,false, 1)
>
> This keeps running forever instead of for 1 second...
> Any ideas on how to solve that? I see a right result coming over the
> network interface so the program can stop!
>
After some time the system stops:
ruby myprogram.rb
myprogram:8:in `search': Operations error (LDAP::ResultError)
from myprogram.rb:8
But that error is nowhere explained. Is there something wrong with my
connection? The server is an Active Directory server, can that make a
difference?

Bart

Bart Braem

8/17/2006 3:18:00 PM

0

Bart Braem wrote:

> Hello,
>
> I'm trying to figure out how to search an LDAP server. I can connect and I
> see searches pass by if I sniff on the network interface. But the search
> command never stops, even tough I limit it to 1 second. (Can I limit the
> search to 1 result?)
>
> irb(main):001:0> require 'ldap'
> => true
> irb(main):002:0> conn = LDAP::Conn.new("someldapserver", 389)
> => #<LDAP::Conn:0xb7afb900>
> irb(main):003:0> conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
> => #<LDAP::Conn:0xb7afb900>
> irb(main):004:0> conn.bind("ldapusername", "ldappassword")
> => #<LDAP::Conn:0xb7afb900>
> irb(main):005:0> conn.search2("dc=somedc",
> LDAP::LDAP_SCOPE_SUBTREE, "somefilter", nil,false, 1)
>
> This keeps running forever instead of for 1 second...
> Any ideas on how to solve that? I see a right result coming over the
> network interface so the program can stop!
>
Right the error is in the details. I used DC in the query instead of dc. The
server responded with some other servers to choose from, some of which did
not exist. So the program took forever trying to query those servers...
(I don't know whether it's useful if I report this situation to the LDAP
module author?)

Thanks for your help!
Bart

Bart Braem

8/18/2006 12:11:00 PM

0

Bart Braem wrote:

> Right the error is in the details. I used DC in the query instead of dc.
> The server responded with some other servers to choose from, some of which
> did not exist. So the program took forever trying to query those
> servers...

Yesterday I tried Net::LDAP and it worked even with a capital DC in the
search base. Net::LDAP seems to have a cleaner interface so perhaps I'll
switch the system over, performance does not seem to be an issue either.

Bart