svn commit: r184811 - in user/dfr/gssapi/7: kerberos5/lib/libgssapi
lib/libgssapi usr.sbin/gssd
Doug Rabson
dfr at FreeBSD.org
Mon Nov 10 02:41:59 PST 2008
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
More information about the svn-src-user
mailing list