GSSAPI

 view release on metacpan or  search on metacpan

xs/OID.xs  view on Meta::CPAN

#include "ppport.h"
GSSAPI::OID_out
new(class)
	char *		class
    CODE:
	RETVAL = NULL;
    OUTPUT:
	RETVAL

void
DESTROY(oid)
	GSSAPI::OID	oid
    PREINIT:
	OM_uint32	minor;
    PPCODE:
#if !defined(HEIMDAL)
	if (oid != NULL &&
	    oid != __KRB5_MECHTYPE_OID &&
	    oid != __KRB5_OLD_MECHTYPE_OID &&
	    oid != __GSS_KRB5_NT_USER_NAME &&
	    oid != __GSS_KRB5_NT_PRINCIPAL_NAME &&
	    oid != __SPNEGO_MECHTYPE_OID &&
	    oid != __gss_mech_krb5_v2  ) {
	    (void)gss_release_oid(&minor, &oid);
	}
#endif
#if defined(HEIMDAL)
#    warn("gss_release_oid is unsupported and not Part of the API!");
#endif

GSSAPI::Status
from_str(class, oid, str)
	char *		class
	GSSAPI::OID_out	oid
	gss_buffer_str	str
    CODE:
#if !defined(HEIMDAL)
	RETVAL.major = gss_str_to_oid(&RETVAL.minor, &str, &oid);
#endif
#if defined(HEIMDAL)
	croak("gss_str_to_oid() is not defined in Heimdal API!");
#endif
    OUTPUT:
	RETVAL
	oid

GSSAPI::Status
to_str(oid, str)
	GSSAPI::OID		oid
	gss_oidstr_out	str
    CODE:
	if (oid == NULL) {
	    sv_setsv_mg(ST(1), &PL_sv_undef);
	    XSRETURN_UNDEF;
	}
#if !defined(HEIMDAL)
	RETVAL.major = gss_oid_to_str(&RETVAL.minor, oid, &str);
#endif
#if defined(HEIMDAL)
	croak("gss_oid_to_str() is not defined in Heimdal API!");
#endif
    OUTPUT:
	RETVAL
	str

GSSAPI::Status
inquire_names(oid, oidset)
	GSSAPI::OID		oid
	GSSAPI::OID::Set_out	oidset
    CODE:
	RETVAL.major =
		gss_inquire_names_for_mech(&RETVAL.minor, oid, &oidset);
    OUTPUT:
	RETVAL
	oidset



( run in 1.033 second using v1.01-cache-2.11-cpan-5511b514fd6 )