Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Nov 2008 10:41:58 +0000 (UTC)
From:      Doug Rabson <dfr@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r184811 - in user/dfr/gssapi/7: kerberos5/lib/libgssapi lib/libgssapi usr.sbin/gssd
Message-ID:  <200811101041.mAAAfwAX067699@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dfr
Date: Mon Nov 10 10:41:58 2008
New Revision: 184811
URL: http://svn.freebsd.org/changeset/base/184811

Log:
  Merge support for gss_pname_to_uid() from current.

Added:
  user/dfr/gssapi/7/kerberos5/lib/libgssapi/pname_to_uid.c
     - copied, changed from r184809, head/kerberos5/lib/libgssapi_krb5/pname_to_uid.c
  user/dfr/gssapi/7/lib/libgssapi/gss_pname_to_uid.c
     - copied, changed from r184809, head/lib/libgssapi/gss_pname_to_uid.c
Modified:
  user/dfr/gssapi/7/kerberos5/lib/libgssapi/Makefile
  user/dfr/gssapi/7/lib/libgssapi/Makefile
  user/dfr/gssapi/7/lib/libgssapi/gss_mech_switch.c
  user/dfr/gssapi/7/lib/libgssapi/mech_switch.h
  user/dfr/gssapi/7/usr.sbin/gssd/gssd.c

Modified: user/dfr/gssapi/7/kerberos5/lib/libgssapi/Makefile
==============================================================================
--- user/dfr/gssapi/7/kerberos5/lib/libgssapi/Makefile	Mon Nov 10 10:04:24 2008	(r184810)
+++ user/dfr/gssapi/7/kerberos5/lib/libgssapi/Makefile	Mon Nov 10 10:41:58 2008	(r184811)
@@ -39,6 +39,7 @@ SRCS=	8003.c \
 	inquire_cred_by_mech.c \
 	inquire_mechs_for_name.c \
 	inquire_names_for_mech.c \
+	pname_to_uid.c \
 	process_context_token.c \
 	release_buffer.c \
 	release_cred.c \

Copied and modified: user/dfr/gssapi/7/kerberos5/lib/libgssapi/pname_to_uid.c (from r184809, head/kerberos5/lib/libgssapi_krb5/pname_to_uid.c)
==============================================================================
--- head/kerberos5/lib/libgssapi_krb5/pname_to_uid.c	Mon Nov 10 06:35:30 2008	(r184809, copy source)
+++ user/dfr/gssapi/7/kerberos5/lib/libgssapi/pname_to_uid.c	Mon Nov 10 10:41:58 2008	(r184811)
@@ -28,21 +28,21 @@
 
 #include <pwd.h>
 
-#include "krb5/gsskrb5_locl.h"
+#include "gssapi_locl.h"
 
 OM_uint32
 _gsskrb5_pname_to_uid(OM_uint32 *minor_status, const gss_name_t pname,
     const gss_OID mech, uid_t *uidp)
 {
-	krb5_context context;
 	krb5_const_principal name = (krb5_const_principal) pname;
 	krb5_error_code kret;
 	char lname[MAXLOGNAME + 1], buf[128];
 	struct passwd pwd, *pw;
 
-	GSSAPI_KRB5_INIT (&context);
+	GSSAPI_KRB5_INIT ();
 
-	kret = krb5_aname_to_localname(context, name, sizeof(lname), lname);
+	kret = krb5_aname_to_localname(gssapi_krb5_context, name,
+	    sizeof(lname), lname);
 	if (kret) {
 		*minor_status = kret;
 		return (GSS_S_FAILURE);

Modified: user/dfr/gssapi/7/lib/libgssapi/Makefile
==============================================================================
--- user/dfr/gssapi/7/lib/libgssapi/Makefile	Mon Nov 10 10:04:24 2008	(r184810)
+++ user/dfr/gssapi/7/lib/libgssapi/Makefile	Mon Nov 10 10:41:58 2008	(r184811)
@@ -46,6 +46,7 @@ SRCS+=		gss_add_oid_set_member.c
 SRCS+=		gss_test_oid_set_member.c
 SRCS+=		gss_release_oid_set.c
 SRCS+=		gss_release_buffer.c
+SRCS+=		gss_pname_to_uid.c
 
 MAN=
 MAN+=		gssapi.3

Modified: user/dfr/gssapi/7/lib/libgssapi/gss_mech_switch.c
==============================================================================
--- user/dfr/gssapi/7/lib/libgssapi/gss_mech_switch.c	Mon Nov 10 10:04:24 2008	(r184810)
+++ user/dfr/gssapi/7/lib/libgssapi/gss_mech_switch.c	Mon Nov 10 10:41:58 2008	(r184811)
@@ -273,6 +273,7 @@ _gss_load_mech(void)
 			gm_krb5_register_acceptor_identity);
 		OPTSYM(krb5_copy_ccache);
 		OPTSYM(krb5_compat_des3_mic);
+		OPTSYM(pname_to_uid);
 
 		SLIST_INSERT_HEAD(&_gss_mechs, m, gm_link);
 		count++;

Copied and modified: user/dfr/gssapi/7/lib/libgssapi/gss_pname_to_uid.c (from r184809, head/lib/libgssapi/gss_pname_to_uid.c)
==============================================================================
--- head/lib/libgssapi/gss_pname_to_uid.c	Mon Nov 10 06:35:30 2008	(r184809, copy source)
+++ user/dfr/gssapi/7/lib/libgssapi/gss_pname_to_uid.c	Mon Nov 10 10:41:58 2008	(r184811)
@@ -54,16 +54,12 @@ gss_pname_to_uid(OM_uint32 *minor_status
 	if (m->gm_pname_to_uid == NULL)
 		return (GSS_S_UNAVAILABLE);
     
-	major_status = _gss_find_mn(minor_status, name, mech, &mn);
-	if (major_status != GSS_S_COMPLETE) {
-		_gss_mg_error(m, major_status, *minor_status);
-		return (major_status);
-	}
+	mn = _gss_find_mn(name, mech);
+	if (!mn)
+		return (GSS_S_BAD_NAME);
 
 	major_status = (*m->gm_pname_to_uid)(minor_status, mn->gmn_name,
 	    mech, uidp);
-	if (major_status != GSS_S_COMPLETE)
-		_gss_mg_error(m, major_status, *minor_status);
 
 	return (major_status);
 }

Modified: user/dfr/gssapi/7/lib/libgssapi/mech_switch.h
==============================================================================
--- user/dfr/gssapi/7/lib/libgssapi/mech_switch.h	Mon Nov 10 10:04:24 2008	(r184810)
+++ user/dfr/gssapi/7/lib/libgssapi/mech_switch.h	Mon Nov 10 10:41:58 2008	(r184811)
@@ -26,6 +26,7 @@
  *	$FreeBSD$
  */
 
+#include <unistd.h>
 #include <sys/queue.h>
 
 typedef OM_uint32 _gss_acquire_cred_t
@@ -282,6 +283,13 @@ typedef OM_uint32 _gss_krb5_compat_des3_
 	       int		       /* flag */
 	      );
 
+typedef OM_uint32 _gss_pname_to_uid
+	      (OM_uint32 *,		/* minor status */
+	       gss_name_t pname,	/* principal name */
+	       gss_OID mech,		/* mechanism to query */
+	       uid_t *uidp		/* pointer to UID for result */
+	      );
+
 struct _gss_mech_switch {
 	SLIST_ENTRY(_gss_mech_switch)	gm_link;
 	gss_OID_desc			gm_mech_oid;
@@ -318,6 +326,7 @@ struct _gss_mech_switch {
 	_gsskrb5_register_acceptor_identity *gm_krb5_register_acceptor_identity;
 	_gss_krb5_copy_ccache		*gm_krb5_copy_ccache;
 	_gss_krb5_compat_des3_mic	*gm_krb5_compat_des3_mic;
+	_gss_pname_to_uid		*gm_pname_to_uid;
 };
 SLIST_HEAD(_gss_mech_switch_list, _gss_mech_switch);
 extern struct _gss_mech_switch_list _gss_mechs;

Modified: user/dfr/gssapi/7/usr.sbin/gssd/gssd.c
==============================================================================
--- user/dfr/gssapi/7/usr.sbin/gssd/gssd.c	Mon Nov 10 10:04:24 2008	(r184810)
+++ user/dfr/gssapi/7/usr.sbin/gssd/gssd.c	Mon Nov 10 10:41:58 2008	(r184811)
@@ -450,7 +450,6 @@ gssd_release_name_1_svc(release_name_arg
 bool_t
 gssd_pname_to_uid_1_svc(pname_to_uid_args *argp, pname_to_uid_res *result, struct svc_req *rqstp)
 {
-#if 0
 	gss_name_t name = gssd_find_resource(argp->pname);
 	uid_t uid;
 	char buf[128];
@@ -487,11 +486,6 @@ gssd_pname_to_uid_1_svc(pname_to_uid_arg
 	}
 
 	return (TRUE);
-#else
-	memset(result, 0, sizeof(*result));
-	result->major_status = GSS_S_FAILURE;
-	return (TRUE);
-#endif
 }
 
 bool_t



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200811101041.mAAAfwAX067699>