Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > ruby-ldap: uninitialized constant LDAP::LDAP_CONTROL_PAGEDRESULTS

Reply
Thread Tools

ruby-ldap: uninitialized constant LDAP::LDAP_CONTROL_PAGEDRESULTS

 
 
James Hughes
Guest
Posts: n/a
 
      12-13-2005
Hi,

I'm trying to run the pr_ctl example script provided with the 0.9.2
distribution of ruby-ldap. It dies with "./pr_ctl:41: uninitialized
constant LDAP::LDAP_CONTROL_PAGEDRESULTS (NameError)".

I need to use this control, but I can't figure out why this is
happening. This constant is mentioned in ldap.c:

#ifdef LDAP_CONTROL_PAGEDRESULTS
rb_define_const (rb_mLDAP, "LDAP_CONTROL_PAGEDRESULTS",
=09=09 rb_str_new2 (LDAP_CONTROL_PAGEDRESULTS));
#endif

I've installed the source distribution of ruby-ldap in place of the
version that Debian provides. I thought perhaps the script was
accessing an older version of the shared library, but there don't seem
to be any old versions lying around. I've added
/usr/local/lib/site_ruby/1.8/i486-linux (the location of the 0.9.2
shared lib) to /etc/ld.so.conf and run ldconfig: no joy.

Any other ideas on how to debug this?

thanks
jh


--
James Hughes
Web application developer
Centre for Health Services and Policy Research
Vancouver, BC


 
Reply With Quote
 
 
 
 
Daniel Berger
Guest
Posts: n/a
 
      12-13-2005
James Hughes wrote:

>
> I need to use this control, but I can't figure out why this is
> happening. This constant is mentioned in ldap.c:
>
> #ifdef LDAP_CONTROL_PAGEDRESULTS
> rb_define_const (rb_mLDAP, "LDAP_CONTROL_PAGEDRESULTS",
> rb_str_new2 (LDAP_CONTROL_PAGEDRESULTS));
> #endif
>


That's a bug. Replace rb_str_new2 with INT2NUM.

Regards,

Dan


 
Reply With Quote
 
 
 
 
James Hughes
Guest
Posts: n/a
 
      12-13-2005
On 12/13/05, Daniel Berger <(E-Mail Removed)> wrote:
> James Hughes wrote:
>
> >
> > I need to use this control, but I can't figure out why this is
> > happening. This constant is mentioned in ldap.c:
> >
> > #ifdef LDAP_CONTROL_PAGEDRESULTS
> > rb_define_const (rb_mLDAP, "LDAP_CONTROL_PAGEDRESULTS",
> > rb_str_new2 (LDAP_CONTROL_PAGEDRESULTS));
> > #endif
> >

>
> That's a bug. Replace rb_str_new2 with INT2NUM.


Done, rebuilt the .so, no joy. Same error. I have verified that the
script is loading the correct shared lib by temporarily renaming it,
which causes the script to die at "require 'ldap'".

As I was about to send this response some of my gcc/make fu started
returning to me, and I added "-DLDAP_CONTROL_PAGEDRESULTS" to the
CPPFLAGS in the Makefile. Should have thought of that first.

But now the script dies with
"in `initialize': wrong argument type Fixnum (expected String) (TypeError)"

This is the offending line:
control =3D LDAP::Control.new(LDAP::LDAP_CONTROL_PAGEDRESULTS,
ber_string,
=09=09=09 critical )

Anyone familiar with ruby-ldap know what's going on?

thanks,
jh


jh

--
James Hughes
Web application developer
Centre for Health Services and Policy Research
Vancouver, BC


 
Reply With Quote
 
Daniel Berger
Guest
Posts: n/a
 
      12-13-2005
James Hughes wrote:
> On 12/13/05, Daniel Berger <(E-Mail Removed)> wrote:
>
>>James Hughes wrote:
>>
>>
>>>I need to use this control, but I can't figure out why this is
>>>happening. This constant is mentioned in ldap.c:
>>>
>>>#ifdef LDAP_CONTROL_PAGEDRESULTS
>>> rb_define_const (rb_mLDAP, "LDAP_CONTROL_PAGEDRESULTS",
>>> rb_str_new2 (LDAP_CONTROL_PAGEDRESULTS));
>>>#endif
>>>

>>
>>That's a bug. Replace rb_str_new2 with INT2NUM.

>
>
> Done, rebuilt the .so, no joy.


Whoops, that's not a bug. It's a string after all. Change that back to
rb_str_new2.

rb(main):001:0> require "ldap"
=> true
irb(main):002:0> LDAP::LDAP_CONTROL_PAGEDRESULTS
=> "1.2.840.113556.1.4.319"

Perhaps it's just not defined with your particular version of ldap?

Regards,

Dan


 
Reply With Quote
 
James Hughes
Guest
Posts: n/a
 
      12-13-2005
On 12/13/05, Daniel Berger <(E-Mail Removed)> wrote:
> rb(main):001:0> require "ldap"
> =3D> true
> irb(main):002:0> LDAP::LDAP_CONTROL_PAGEDRESULTS
> =3D> "1.2.840.113556.1.4.319"
>
> Perhaps it's just not defined with your particular version of ldap?


Of course. Don't know why I thought ruby-ldap would define this
somewhere. Time to upgrade from openldap 2.2.26 I guess.
jh


--
James Hughes
Web application developer
Centre for Health Services and Policy Research
Vancouver, BC


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
uninitialized constant error doolittle@gmail.com Ruby 1 07-02-2006 03:37 AM
uninitialized constant ApplicationController (NameError) Daniel Ruby 2 06-22-2006 08:39 AM
ruby - rexml/streamlistner - error: uninitialized constant jsp408@comcast.net Ruby 2 06-15-2006 11:30 AM
Uninitialized constant objects =?ISO-8859-1?Q?Ney_Andr=E9_de_Mello_Zunino?= C++ 5 06-01-2005 11:31 AM
uninitialized constant Magick in RMagick Todd Gardner Ruby 3 06-17-2004 09:55 AM



Advertisments