summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient
diff options
context:
space:
mode:
authorrmacklem <rmacklem@FreeBSD.org>2011-06-19 22:08:55 +0000
committerrmacklem <rmacklem@FreeBSD.org>2011-06-19 22:08:55 +0000
commitbe57e75b00c1ba88332a570e83564f6cae5dba45 (patch)
tree1748b2392bad991b60d72c1a5c4c795f329b87ca /sys/nfsclient
parentf3c935589780909d53003a34a63975a197937374 (diff)
downloadFreeBSD-src-be57e75b00c1ba88332a570e83564f6cae5dba45.zip
FreeBSD-src-be57e75b00c1ba88332a570e83564f6cae5dba45.tar.gz
Fix the kgssapi so that it can be loaded as a module. Currently
the NFS subsystems use five of the rpcsec_gss/kgssapi entry points, but since it was not obvious which others might be useful, all nineteen were included. Basically the nineteen entry points are set in a structure called rpc_gss_entries and inline functions defined in sys/rpc/rpcsec_gss.h check for the entry points being non-NULL and then call them. A default value is returned otherwise. Requested by rwatson. Reviewed by: jhb MFC after: 2 weeks
Diffstat (limited to 'sys/nfsclient')
-rw-r--r--sys/nfsclient/nfs_krpc.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/sys/nfsclient/nfs_krpc.c b/sys/nfsclient/nfs_krpc.c
index 242d425..171f7aa 100644
--- a/sys/nfsclient/nfs_krpc.c
+++ b/sys/nfsclient/nfs_krpc.c
@@ -306,9 +306,7 @@ nfs_disconnect(struct nfsmount *nmp)
client = nmp->nm_client;
nmp->nm_client = NULL;
mtx_unlock(&nmp->nm_mtx);
-#ifdef KGSSAPI
- rpc_gss_secpurge(client);
-#endif
+ rpc_gss_secpurge_call(client);
CLNT_CLOSE(client);
CLNT_RELEASE(client);
} else
@@ -325,18 +323,15 @@ nfs_safedisconnect(struct nfsmount *nmp)
static AUTH *
nfs_getauth(struct nfsmount *nmp, struct ucred *cred)
{
-#ifdef KGSSAPI
rpc_gss_service_t svc;
AUTH *auth;
-#endif
switch (nmp->nm_secflavor) {
-#ifdef KGSSAPI
case RPCSEC_GSS_KRB5:
case RPCSEC_GSS_KRB5I:
case RPCSEC_GSS_KRB5P:
if (!nmp->nm_mech_oid)
- if (!rpc_gss_mech_to_oid("kerberosv5",
+ if (!rpc_gss_mech_to_oid_call("kerberosv5",
&nmp->nm_mech_oid))
return (NULL);
if (nmp->nm_secflavor == RPCSEC_GSS_KRB5)
@@ -345,12 +340,11 @@ nfs_getauth(struct nfsmount *nmp, struct ucred *cred)
svc = rpc_gss_svc_integrity;
else
svc = rpc_gss_svc_privacy;
- auth = rpc_gss_secfind(nmp->nm_client, cred,
+ auth = rpc_gss_secfind_call(nmp->nm_client, cred,
nmp->nm_principal, nmp->nm_mech_oid, svc);
if (auth)
return (auth);
/* fallthrough */
-#endif
case AUTH_SYS:
default:
return (authunix_create(cred));
OpenPOWER on IntegriCloud