aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/rpc/svc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/rpc/svc.c b/src/lib/rpc/svc.c
index 9fa7b33..93b4fd1 100644
--- a/src/lib/rpc/svc.c
+++ b/src/lib/rpc/svc.c
@@ -437,6 +437,8 @@ svc_getreqset(FDSET_TYPE *readfds)
#endif
}
+extern struct svc_auth_ops svc_auth_gss_ops;
+
static void
svc_do_xprt(SVCXPRT *xprt)
{
@@ -518,6 +520,9 @@ svc_do_xprt(SVCXPRT *xprt)
if ((stat = SVC_STAT(xprt)) == XPRT_DIED){
SVC_DESTROY(xprt);
break;
+ } else if ((xprt->xp_auth != NULL) &&
+ (xprt->xp_auth->svc_ah_ops != &svc_auth_gss_ops)) {
+ xprt->xp_auth = NULL;
}
} while (stat == XPRT_MOREREQS);