MODULE = Authen::SPNEGO::GSSAPI PACKAGE = Authen::SPNEGO::GSSAPI PREFIX=authen_spnego_gssapi_
void
authen_spnego_gssapi_gss_import_name( in_servername )
char * in_servername
INIT:
OM_uint32 major_status;
OM_uint32 minor_status;
gss_name_t server_gss_name;
gss_buffer_desc snbuffer;
PPCODE:
snbuffer.value = strdup( in_servername );
if ( snbuffer.value == NULL ) {
Perl_croak(aTHX_ "strdup");
}
snbuffer.length = strlen( snbuffer.value ) ;
major_status = gss_import_name( &major_status,
&snbuffer,
GSS_C_NT_HOSTBASED_SERVICE,
&server_gss_name);
XPUSHs( sv_2mortal( newSVuv( major_status ) ) );
XPUSHs( sv_2mortal( newSVuv( minor_status ) ) );
free( snbuffer.value );
if ( major_status == GSS_S_COMPLETE) {
XPUSHs( sv_newmortal());
sv_setref_pv(ST(2), "gss_name_t", (void*)server_gss_name);
} |