From owner-svn-src-user@FreeBSD.ORG Mon Nov 10 10:41:58 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E5E85106567B; Mon, 10 Nov 2008 10:41:58 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CE1668FC26; Mon, 10 Nov 2008 10:41:58 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id mAAAfwtN067706; Mon, 10 Nov 2008 10:41:58 GMT (envelope-from dfr@svn.freebsd.org) Received: (from dfr@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id mAAAfwAX067699; Mon, 10 Nov 2008 10:41:58 GMT (envelope-from dfr@svn.freebsd.org) Message-Id: <200811101041.mAAAfwAX067699@svn.freebsd.org> From: Doug Rabson Date: Mon, 10 Nov 2008 10:41:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184811 - in user/dfr/gssapi/7: kerberos5/lib/libgssapi lib/libgssapi usr.sbin/gssd X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Nov 2008 10:41:59 -0000 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 -#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 #include 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