MODULE = Authen::SPNEGO::GSSAPI PACKAGE = Authen::SPNEGO::GSSAPI
void
array_gss_indicate_mechs()
INIT:
OM_uint32 major_status;
OM_uint32 minor_status;
gss_OID_set mechset;
gss_OID tmp_oid;
unsigned int i;
unsigned int n;
unsigned char *oidelem;
AV *tmparray;
PPCODE:
_DBG("going to call gss_indicate_mechs...");
major_status = gss_indicate_mechs( &minor_status, &mechset);
if (major_status) {
_DBG("failed!");
} else {
_DBG("OK");
for (i=0; i < mechset->count; i++) {
_DBG("found");
tmparray = newAV() ;
tmp_oid = &mechset->elements[i];
oidelem = tmp_oid->elements;
for ( n=0; n < tmp_oid->length; n++) {
av_push( tmparray, newSVuv( *oidelem ) );
oidelem++;
}
XPUSHs( sv_2mortal( newRV((SV *) tmparray ) ) ) ;
}
gss_release_oid_set(&minor_status, &mechset);
} |