So I'm making some headway on a kerberos 5 extension for ruby.  It's
limited at the moment to authorizing a user, changing a user password,
creating principals, and deleting principals, but it's working.  Now
I'm trying to refactor it a bit and need some assistance.  I've never
really coded in C before so bear with me..

In kerberos when doing an administration function I first need to
initialize the system with the credentials of an administrative user
like so, with handle being a void pointer initialized to NULL.  The
following kerberos function will fill handle with a handle for the
connection which I can use in subsequent calls to other kadm5
functions.

 kadm5_init_with_password(auser, apass, KADM5_ADMIN_SERVICE, NULL,
KADM5_STRUCT_VERSION, KADM5_API_VERSION_2, &handle);

Now what I'd like is to return that handle to ruby and be able to pass
it back into my C extension when it's needed, such as when needing to
call the following kerberos function.

kadm5_create_principal(handle, &princ, mask, pass);

So how would I do this?  If I understand void pointers correctly,
handle could be any type after the call to kadm5_init_with_password,
so it seems I would want to check it's type after it's set, then find
the right type/structure to convert it to or wrap it in before passing
it back to ruby?  Not that I know how to do that:)

Chris