Pointer of pointer with Ruby/DL

  • Thread starter Guillaume Marcais
  • Start date
G

Guillaume Marcais

I have the following C prototype:

int auth(char *user, char *passwd, char **msgp);

I pass user and passwd, and I get in response 0 or 1 for success or
failure and a message in *msgp.

How can i call this function from Ruby using Ruby/DL? So far I did the
following:

<code>
module Auth
extend DL::Importable
dlload "./auth.so"
extern "int auth(char *, char *, char **)"
end

msgp = [0].pack('L').to_ptr
r = Tenant2Auth.public_tenant2_auth_pap_auth("coucou", "titi", msgp)
</code>

I get the correct result in 'r'. But how do I get access to the string
in *msgp?

I guess I don't yet have a good grasp on pointer dereferencing with
Ruby/DL.

Anyone?

Guillaume.
 
K

Kent Sibilev

Try this:
msgp = DL.malloc(DL.sizeof('P'))
r = Tenant2Auth.public_tenant2_auth_pap_auth("coucou", "titi", msgp.ref)
puts msgp.to_s

Cheers,
Kent.
 
G

Guillaume Marcais

Le 8 déc. 04, à 12:25, Kent Sibilev a écrit :
Try this:
msgp = DL.malloc(DL.sizeof('P'))
r = Tenant2Auth.public_tenant2_auth_pap_auth("coucou", "titi",
msgp.ref)
puts msgp.to_s

Works great, thanks.

Guillaume.
Cheers,
Kent.
I have the following C prototype:

int auth(char *user, char *passwd, char **msgp);

I pass user and passwd, and I get in response 0 or 1 for success or
failure and a message in *msgp.

How can i call this function from Ruby using Ruby/DL? So far I did the
following:

<code>
module Auth
extend DL::Importable
dlload "./auth.so"
extern "int auth(char *, char *, char **)"
end

msgp = [0].pack('L').to_ptr
r = Tenant2Auth.public_tenant2_auth_pap_auth("coucou", "titi", msgp)
</code>

I get the correct result in 'r'. But how do I get access to the string
in *msgp?

I guess I don't yet have a good grasp on pointer dereferencing with
Ruby/DL.

Anyone?

Guillaume.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,598
Members
45,152
Latest member
LorettaGur
Top