summaryrefslogtreecommitdiffstats
path: root/proxy/src/mechglue/gss_plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'proxy/src/mechglue/gss_plugin.c')
-rw-r--r--proxy/src/mechglue/gss_plugin.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/proxy/src/mechglue/gss_plugin.c b/proxy/src/mechglue/gss_plugin.c
index f573e12..f6757a1 100644
--- a/proxy/src/mechglue/gss_plugin.c
+++ b/proxy/src/mechglue/gss_plugin.c
@@ -365,3 +365,19 @@ uint32_t gpp_unmap_error(uint32_t err)
}
return err;
}
+
+uint32_t gpp_remote_to_local_ctx(uint32_t *minor, gssx_ctx **remote_ctx,
+ gss_ctx_id_t *local_ctx)
+{
+ gss_buffer_desc buf;
+ uint32_t maj;
+
+ gp_conv_gssx_to_buffer(&(*remote_ctx)->exported_context_token, &buf);
+
+ maj = gss_import_sec_context(minor, &buf, local_ctx);
+
+ xdr_free((xdrproc_t)xdr_gssx_ctx, (char *)(*remote_ctx));
+ *remote_ctx = NULL;
+
+ return maj;
+}