Ruby-ldap on Windows (built)

Francis C. wrote:

Rcmn 73 wrote:

Francis C. wrote:

On 8/28/06, Rcmn 73 [email protected] wrote:

That would be great if ActiveLdap get accessible without compiling.
Because i almost choose to do this project with python.I was done with
my test in less than 3 hours installation included. I was ready to go
with it but i found active_directory ,a python module, easy to use but
also very limitated.

Out of curiosity, what were the specific limitations you found with
the python module active_directory? I want to make sure I didn’t leave
similar limitations in Net::LDAP :-).

this module allow to just search.No add/remove function .And i run into
a limitation, 1500 max returns(That’s just what i’ve been experiencing).

Thanks for the information. Net::LDAP has the full set of LDAP
operations. I’m a little surprised that you are able to get 1500 entries
per search, though. The usual limitation with ActiveDirectory is 1000.
Many tools have this limitation, which is caused by a lack of support
for RFC-2696. Net::LDAP doesn’t have this limitation, and neither do the
more recent versions of ldapsearch.

I’ve never heard of 1500, though, unless your A/D configuration has been
tweaked.

This is a very good new that Net::LDAP does not have this limitation.
As our Active directory limitation it has probably limitated to
1500.Using PHP or the DS command’s i can get various result but i was
never able to get more than 1500+.And depending of the periode of the
day PHP or DS cmd would just died without any return.Anyway with the
python module i get a consitent 1500.So maybe as u mention the
limitation is an AD setting.
So i assume i will run into that limitation also with Net::LDAP…Or
Net::LDAP process search by a different way and avoid this sort of
limitation ? By getting a set of 100 then an other 100 etc ? Or is that
impossible?

On 8/29/06, Rcmn 73 [email protected] wrote:

This is a very good new that Net::LDAP does not have this limitation.

Net::LDAP correctly implements the “paged-search” control, so there is
no limit on the number of entries you can query from A/D. If your set
is particularly large (more than 10,000 for example), then I recommend
you use the :return_result => false flag. See the rdocs for
Net::LDAP#search for more information.

Rcmn 73 wrote:

Francis C. wrote:

On 8/28/06, Rcmn 73 [email protected] wrote:

That would be great if ActiveLdap get accessible without compiling.
Because i almost choose to do this project with python.I was done with
my test in less than 3 hours installation included. I was ready to go
with it but i found active_directory ,a python module, easy to use but
also very limitated.

Out of curiosity, what were the specific limitations you found with
the python module active_directory? I want to make sure I didn’t leave
similar limitations in Net::LDAP :-).

this module allow to just search.No add/remove function .And i run into
a limitation, 1500 max returns(That’s just what i’ve been experiencing).

Thanks for the information. Net::LDAP has the full set of LDAP
operations. I’m a little surprised that you are able to get 1500 entries
per search, though. The usual limitation with ActiveDirectory is 1000.
Many tools have this limitation, which is caused by a lack of support
for RFC-2696. Net::LDAP doesn’t have this limitation, and neither do the
more recent versions of ldapsearch.

I’ve never heard of 1500, though, unless your A/D configuration has been
tweaked.

On 8/29/06, Rcmn 73 [email protected] wrote:

This is a very good new that Net::LDAP does not have this limitation.
As our Active directory limitation it has probably limitated to
1500.Using PHP or the DS command’s i can get various result but i was
never able to get more than 1500+.And depending of the periode of the
day PHP or DS cmd would just died without any return.Anyway with the
python module i get a consitent 1500.So maybe as u mention the
limitation is an AD setting.
So i assume i will run into that limitation also with Net::LDAP…Or
Net::LDAP process search by a different way and avoid this sort of
limitation ? By getting a set of 100 then an other 100 etc ? Or is that
impossible?

I forgot to mention: paged searches are automatic in Net::LDAP. You
don’t have to write your code differently to get them.

Does Net::LDAP have a way of dealing with this on v2 servers? or
servers that don’t yet implement paged results? Thanks.

-jason

Francis C. wrote:

On 8/29/06, Rcmn 73 [email protected] wrote:

This is a very good new that Net::LDAP does not have this limitation.
As our Active directory limitation it has probably limitated to
1500.Using PHP or the DS command’s i can get various result but i was
never able to get more than 1500+.And depending of the periode of the
day PHP or DS cmd would just died without any return.Anyway with the
python module i get a consitent 1500.So maybe as u mention the
limitation is an AD setting.
So i assume i will run into that limitation also with Net::LDAP…Or
Net::LDAP process search by a different way and avoid this sort of
limitation ? By getting a set of 100 then an other 100 etc ? Or is that
impossible?

I forgot to mention: paged searches are automatic in Net::LDAP. You
don’t have to write your code differently to get them.

This is great informations and specially great news.Thank you very much
for the information and the great work.

On 8/29/06, Jason R. [email protected] wrote:

Does Net::LDAP have a way of dealing with this on v2 servers? or
servers that don’t yet implement paged results? Thanks.

-jason

That’s two different questions. Net::LDAP only implements V3. Do you
actually have a V2 server??? If so, I’d be really appreciative if you
could try Net::LDAP against it and see what happens. (Is it one of
those early Netscape Enterprise Directories?)

Paged results: Net::LDAP specifies the control as “noncritical,” which
means it will be ignored by servers that don’t recognize it (such as
OpenLDAP versions other than very recent ones). So it will
interoperate seamlessly with these servers.

On 8/29/06, Rcmn 73 [email protected] wrote:

This is great informations and specially great news.Thank you very
much
for the information and the great work.

If you try the library and have problems, please tell me, either here
or by private email. A lot of people have done so already, and it
makes the library better for everyone.

I don’t have a V2 server; I was more concerned with the versions of
OpenLDAP that don’t recognize it… Is there a way to deal with
getting all the results from a not recent OpenLDAP server? Thanks.

-jason

Excellent… I’ll have to start retrofitting some of my ruby/ldap
based scripts over, and playin’ around.

-jason

On 8/29/06, Jason R. [email protected] wrote:

I don’t have a V2 server; I was more concerned with the versions of
OpenLDAP that don’t recognize it… Is there a way to deal with
getting all the results from a not recent OpenLDAP server? Thanks.

Net::LDAP works seamlessly with older OpenLDAP servers that don’t
support paged queries. I know because I use one in production all day
long.

For what it’s worth (and at the risk of igniting some flames): I’m
quite convinced that paged-searches were invented by Microsoft
primarily to lighten the load on their somewhat, ummm… “challenging”
LDAP implementation. (Bear in mind that LDAP support was tacked onto
A/D after the core was designed.) If you read the paged-search RFC,
they blow some smoke about lessening the load on client
implementations.

OpenLDAP added paged searches recently, but their older
implementations don’t suffer particularly for the lack. I routinely
query 100,000 entries out of an old OpenLDAP on a low-end workstation
to test Net::LDAP, and it doesn’t break a sweat. It’s not fast, but
it’s stable.

I’m getting the following error when i try to install ruby-ldap-0.9.7 in
Windows Vista.

extconf.rb:162:in ``’: No such file or directory - lib
/def:./win/wldap32.def /o
ut:./win/wldap32.lib (Errno::ENOENT)
from extconf.rb:162

Someone can help me?

But who use Windows Vista ???
sorry --> []

It say’s that file you want open or do something else don’t exist. Maybe
you
just do some mistake in path to this file or you don’t have permissions
to
access.

2008/3/13, Rcmn 73 [email protected]:

Chris S. wrote:

Wilson B. wrote:

On 4/18/06, Chris S. [email protected] wrote:

on the mswin32 build, please try the pre-built package:
I believe these are the proper locations. Hopefully this helps someone
out there :slight_smile:

Note: This was build using 0.9.4 of ruby-ldap on WinXP SP2.

I would LOVE to know how you managed this. I struck out hard on
several occasions, and I’d like to learn from my mistakes.

–Wilson.

Well, the first step was to download the latest Platform SDK
(http://www.microsoft.com/downloads/details.aspx?FamilyID=0baf2b35-c656-4969-ace8-e4c0c0716adb&DisplayLang=en).
The reason is that I have MSVC C++ 6.0, and apparently that distribution
has a known issue with the wldap32.lib library. After downloading the
SDK, I grabbed the latest ruby-ldap source from sourceforge.

Now, the ruby-ldap source has a win directory, which has a wldap32.def
file, and this is used to build the wldap32.lib file. However, I think
this .def creates the BAD .lib that comes with MSVC 6, so what I did was
drop in the one from the platform SDK.

Now, the tricky part: modifiying the source. I had to open the
sslconn.c file, and change a few things. The first is that the
rb_ldap_sslconn_bind_f function (around line 260) is missing an
argument. The function definition should be:

VALUE rb_ldap_sslconn_bind_f(int argc, VALUE argv[], VALUE self,
VALUE (*rb_ldap_sslconn_bind_func) (int, VALUE, VALUE))

The two functions that follow (rb_ldap_sslconn_bind_s and
rb_ldap_sslconn_simple_bind_s) make calls to a function called

rb_ldap_sslconn_bind_func

However, it should be

rb_ldap_sslconn_bind_f

Next - the SDK includes special command prompt shortcuts that set up the
paths and all that, so I used the one for my machine (Win XP 32-bit),
and went to the directory where I had extracted the source.

Then:

ruby extconf.rb --with-wldap32
nmake
nmake install

I believe the Platform SDK itself should be sufficient to build
everything - the real trick is getting that .lib from the SDK and
dropping it in the \win directory of the extracted source, and then
changing the source code.

I’m getting the following error when i try to install ruby-ldap-0.9.7 in
Windows Vista.

extconf.rb:162:in ``': No such file or directory - lib
/def:./win/wldap32.def /o
ut:./win/wldap32.lib (Errno::ENOENT)
from extconf.rb:162

Someone can help me?

Hi…

Someone has build ruby-ldap with openldap2 (–with-openldap2) for
windows xp?

I’m using openldap and the pre-built package, i have problem when
updating attributes from my rails app.

No such attribute…

I build openldap, ruby-ldap with openldap2, and installed activeldap and
works full gut!..

Someone can help?

thankx

Chris S. wrote:

I have finally managed to build the ruby-ldap library for the Windows
platform (i.e. not a cygwin or ming build, but an mswin32 build).

This has been an issue for awhile as the maintainer of the project does
not have access to a Windows machine for testing.

So far, it seems to be working (I use it only for ActiveDirectory
authentication).

Anyway, if you are like me and have been struggling to get ldap working
on the mswin32 build, please try the pre-built package:

Download:
http://webtest.wvu.edu/users/cbscharf/ldap/

Put ldap.so in:
C:\ruby\lib\ruby\site_ruby\1.8\i386-msvcrt

Put *.rb in:
C:\ruby\lib\ruby\site_ruby\1.8\ldap

I believe these are the proper locations. Hopefully this helps someone
out there :slight_smile:

Note: This was build using 0.9.4 of ruby-ldap on WinXP SP2.
hi,I feel excited to the mswin32 build,but the download url provided
can’t be accessed. can you help me?
my email address is [email protected].
thank you in advance.

sorry!

when i say…: I build openldap, ruby-ldap with openldap2, and installed
activeldap and works full gut!..

works full gut in Leopard… but on Windows?