/*
* call-seq:
* new
*
* Create a new Krb5Auth::Krb5 object. This must be called before any other methods are called. Returns true on success, raises Krb5Auth::Krb5::Exception on failure.
*/
static VALUE Krb5_new(VALUE self)
{
struct ruby_krb5 *kerb;
krb5_error_code krbret;
kerb = (struct ruby_krb5 *)malloc(sizeof(struct ruby_krb5));
if (kerb == NULL) {
OOM_EXCEPT();
return Qnil;
}
memset(kerb, 0, sizeof(struct ruby_krb5));
krbret = krb5_init_context(&kerb->ctx);
if (krbret) {
Krb5_register_error(krbret);
return Qnil;
}
return Data_Wrap_Struct(cKrb5, NULL, kerb_free, kerb);
}