diff options
-rw-r--r-- | src/lib/rpc/svc.c | 5 |
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); |