Re: [PATCH] clnt_com_create: Restore backwards compatibility with the legacy glibc code.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Apr 9, 2018, at 11:28 AM, Steve Dickson <steved@xxxxxxxxxx> wrote:
> 
> Commit 46e04a73 changed clnt_com_create() to avoid
> using reserved ports when creating the the CLIENT ptr.
> This change breaks backward compatibility with the
> legacy RPC code that was in glibc.
> 
> This patch reverts that commit to restore backwards compatibility
> 
> Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
> ---
> src/rpc_soc.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/src/rpc_soc.c b/src/rpc_soc.c
> index af6c482..ed0892a 100644
> --- a/src/rpc_soc.c
> +++ b/src/rpc_soc.c
> @@ -67,8 +67,6 @@
> 
> extern mutex_t	rpcsoc_lock;
> 
> -extern int __binddynport(int fd);
> -
> static CLIENT *clnt_com_create(struct sockaddr_in *, rpcprog_t, rpcvers_t,
>     int *, u_int, u_int, char *, int);
> static SVCXPRT *svc_com_create(int, u_int, u_int, char *);
> @@ -147,8 +145,7 @@ clnt_com_create(raddr, prog, vers, sockp, sendsz, recvsz, tp, flags)
> 	bindaddr.maxlen = bindaddr.len =  sizeof (struct sockaddr_in);
> 	bindaddr.buf = raddr;
> 
> -	if (__binddynport(fd) == -1)
> -		goto err;
> +	bindresvport(fd, NULL);
> 	cl = clnt_tli_create(fd, nconf, &bindaddr, prog, vers,
> 				sendsz, recvsz);
> 	if (cl) {
> @@ -316,6 +313,7 @@ svc_com_create(fd, sendsize, recvsize, netid)
> 	SVCXPRT *svc;
> 	int madefd = FALSE;
> 	int port;
> +	struct sockaddr_in sin;
> 
> 	if ((nconf = __rpc_getconfip(netid)) == NULL) {
> 		(void) syslog(LOG_ERR, "Could not get %s transport", netid);
> @@ -332,6 +330,10 @@ svc_com_create(fd, sendsize, recvsize, netid)
> 		madefd = TRUE;
> 	}
> 
> +	memset(&sin, 0, sizeof sin);
> +	sin.sin_family = AF_INET;
> +	bindresvport(fd, &sin);
> +	listen(fd, SOMAXCONN);

Why do we need to fix the server API too?


> 	svc = svc_tli_create(fd, nconf, NULL, sendsize, recvsize);
> 	(void) freenetconfigent(nconf);
> 	if (svc == NULL) {
> -- 
> 2.14.3
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
Chuck Lever



--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux