diff options
Diffstat (limited to 'proxy/src')
-rw-r--r-- | proxy/src/mechglue/gpp_import_and_canon_name.c | 24 | ||||
-rw-r--r-- | proxy/src/mechglue/gss_plugin.h | 4 |
2 files changed, 28 insertions, 0 deletions
diff --git a/proxy/src/mechglue/gpp_import_and_canon_name.c b/proxy/src/mechglue/gpp_import_and_canon_name.c index 3745d74..e121782 100644 --- a/proxy/src/mechglue/gpp_import_and_canon_name.c +++ b/proxy/src/mechglue/gpp_import_and_canon_name.c @@ -159,6 +159,30 @@ OM_uint32 gssi_export_name(OM_uint32 *minor_status, return maj; } +OM_uint32 gssi_export_name_composite(OM_uint32 *minor_status, + const gss_name_t input_name, + gss_buffer_t exported_composite_name) +{ + struct gpp_name_handle *name; + OM_uint32 maj, min = 0; + + name = (struct gpp_name_handle *)input_name; + if (!name->local && !name->remote) { + return GSS_S_BAD_NAME; + } + + if (name->local) { + maj = gss_export_name_composite(&min, name->local, + exported_composite_name); + } else { + maj = gpm_export_name_composite(&min, name->remote, + exported_composite_name); + } + + *minor_status = gpp_map_error(min); + return maj; +} + OM_uint32 gssi_duplicate_name(OM_uint32 *minor_status, const gss_name_t input_name, gss_name_t *dest_name) diff --git a/proxy/src/mechglue/gss_plugin.h b/proxy/src/mechglue/gss_plugin.h index 15f8d76..b0388bf 100644 --- a/proxy/src/mechglue/gss_plugin.h +++ b/proxy/src/mechglue/gss_plugin.h @@ -257,6 +257,10 @@ OM_uint32 gssi_export_name(OM_uint32 *minor_status, const gss_name_t input_name, gss_buffer_t exported_name); +OM_uint32 gssi_export_name_composite(OM_uint32 *minor_status, + const gss_name_t input_name, + gss_buffer_t exported_composite_name); + OM_uint32 gssi_duplicate_name(OM_uint32 *minor_status, const gss_name_t input_name, gss_name_t *dest_name); |