Blob Blame History Raw
commit 86036582c001e99075f4d74cb3829df39f2a9ddf
Author: Frank Hirtz <fhirtz@redhat.com>
Date:   Tue Oct 23 11:38:20 2012 -0400

    rpcbind is "swallowing" broadcast RPC replies
    
    If xp_auth is NULL, the transport routines will not send
    the reply. This patch fixes that problem.
    
    Signed-off-by: Steve Dickson <steved@redhat.com>

diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c
index 5bb9a44..f6bd6bd 100644
--- a/src/rpcb_svc_com.c
+++ b/src/rpcb_svc_com.c
@@ -1227,6 +1227,8 @@ send_svcsyserr(SVCXPRT *xprt, struct finfo *fi)
 	return;
 }
 
+extern SVCAUTH svc_auth_none;
+
 static void
 handle_reply(int fd, SVCXPRT *xprt)
 {
@@ -1293,7 +1295,10 @@ handle_reply(int fd, SVCXPRT *xprt)
 	a.rmt_localvers = fi->versnum;
 
 	xprt_set_caller(xprt, fi);
+	xprt->xp_auth = &svc_auth_none;
 	svc_sendreply(xprt, (xdrproc_t) xdr_rmtcall_result, (char *) &a);
+	SVCAUTH_DESTROY(xprt->xp_auth);
+	xprt->xp_auth = NULL;
 done:
 	if (buffer)
 		free(buffer);