summaryrefslogtreecommitdiffstats
path: root/src/lib/gssapi/spnego
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2011-04-05 22:10:00 +0000
committerGreg Hudson <ghudson@mit.edu>2011-04-05 22:10:00 +0000
commit0b43147cd2bc57bb7753c337a83440add88c869f (patch)
treefd74337b5f80a3c40c9183bc0bec15f67d42a3a4 /src/lib/gssapi/spnego
parent79c34ed3d829ee9e3fa64aa5b3b90b4e37514cf7 (diff)
gss_duplicate_name SPI for SPNEGO
Preserve attributes when duplicating a name, using the mechanism's implementation of gss_duplicate_name if present, or a loop over the attributes if not. ticket: 6895 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24843 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/gssapi/spnego')
-rw-r--r--src/lib/gssapi/spnego/gssapiP_spnego.h8
-rw-r--r--src/lib/gssapi/spnego/spnego_mech.c18
2 files changed, 26 insertions, 0 deletions
diff --git a/src/lib/gssapi/spnego/gssapiP_spnego.h b/src/lib/gssapi/spnego/gssapiP_spnego.h
index 3c2edbbdd..29eabbb3c 100644
--- a/src/lib/gssapi/spnego/gssapiP_spnego.h
+++ b/src/lib/gssapi/spnego/gssapiP_spnego.h
@@ -223,6 +223,14 @@ OM_uint32 spnego_gss_release_name
gss_name_t * /* input_name */
);
+OM_uint32 spnego_gss_duplicate_name
+(
+ OM_uint32 *, /* minor_status */
+ /* CSTYLED */
+ const gss_name_t, /* input_name */
+ gss_name_t * /* output_name */
+);
+
OM_uint32 spnego_gss_inquire_cred
(
OM_uint32 *, /* minor_status */
diff --git a/src/lib/gssapi/spnego/spnego_mech.c b/src/lib/gssapi/spnego/spnego_mech.c
index 01fa8e276..3467ee0d7 100644
--- a/src/lib/gssapi/spnego/spnego_mech.c
+++ b/src/lib/gssapi/spnego/spnego_mech.c
@@ -246,6 +246,7 @@ static struct gss_config spnego_mechanism =
NULL, /* gssd_pname_to_uid */
NULL, /* gss_userok */
NULL, /* gss_export_name */
+ spnego_gss_duplicate_name, /* gss_duplicate_name */
NULL, /* gss_store_cred */
spnego_gss_inquire_sec_context_by_oid, /* gss_inquire_sec_context_by_oid */
spnego_gss_inquire_cred_by_oid, /* gss_inquire_cred_by_oid */
@@ -1855,6 +1856,23 @@ spnego_gss_release_name(
return (status);
}
+/*ARGSUSED*/
+OM_uint32
+spnego_gss_duplicate_name(
+ OM_uint32 *minor_status,
+ const gss_name_t input_name,
+ gss_name_t *output_name)
+{
+ OM_uint32 status;
+
+ dsyslog("Entering duplicate_name\n");
+
+ status = gss_duplicate_name(minor_status, input_name, output_name);
+
+ dsyslog("Leaving duplicate_name\n");
+ return (status);
+}
+
OM_uint32
spnego_gss_inquire_cred(
OM_uint32 *minor_status,