Forum: Ruby ruby-ldap: uninitialized constant LDAP::LDAP_CONTROL_PAGEDRE

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
E74a19a983b0da1c671de90b341e7c06?d=identicon&s=25 James Hughes (Guest)
on 2005-12-13 19:42
(Received via mailing list)
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",
		   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
F3b7b8756d0c7f71cc7460cc33aefaee?d=identicon&s=25 Daniel Berger (Guest)
on 2005-12-13 20:12
(Received via mailing list)
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
E74a19a983b0da1c671de90b341e7c06?d=identicon&s=25 James Hughes (Guest)
on 2005-12-13 22:52
(Received via mailing list)
On 12/13/05, Daniel Berger <Daniel.Berger@qwest.com> wrote:
> >
>
> 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 = LDAP::Control.new(LDAP::LDAP_CONTROL_PAGEDRESULTS,
                                          ber_string,
			                  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
F3b7b8756d0c7f71cc7460cc33aefaee?d=identicon&s=25 Daniel Berger (Guest)
on 2005-12-13 23:53
(Received via mailing list)
James Hughes wrote:
>>>                 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
E74a19a983b0da1c671de90b341e7c06?d=identicon&s=25 James Hughes (Guest)
on 2005-12-14 00:48
(Received via mailing list)
On 12/13/05, Daniel Berger <Daniel.Berger@qwest.com> wrote:
> 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?

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
This topic is locked and can not be replied to.