From 0e3fd04e93b163f27ecbea4a3a777c041b4352b4 Mon Sep 17 00:00:00 2001 From: Mark Lipscombe Date: Tue, 24 Feb 2015 12:28:27 -0800 Subject: rdma: Fix failure to call rdma_bind_addr if unable to bind privileged port. When unable to bind a privileged port, rdma_bind_addr is not called. This patch fixes that. Change-Id: I175884a5d6a08b93dc62653ee0a6622bfc06e618 Bug: 1195907 Signed-off-by: Mark Lipscombe Reviewed-on: http://review.gluster.org/9737 Tested-by: Gluster Build System Reviewed-by: mohammed rafi kc Reviewed-by: Raghavendra G Tested-by: Raghavendra G --- rpc/rpc-transport/rdma/src/name.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'rpc') diff --git a/rpc/rpc-transport/rdma/src/name.c b/rpc/rpc-transport/rdma/src/name.c index c57428ad62e..52ce5bbce55 100644 --- a/rpc/rpc-transport/rdma/src/name.c +++ b/rpc/rpc-transport/rdma/src/name.c @@ -437,7 +437,14 @@ gf_rdma_client_bind (rpc_transport_t *this, struct sockaddr *sockaddr, "cannot bind rdma_cm_id to port " "less than %d (%s)", GF_CLIENT_PORT_CEILING, strerror (errno)); - ret = 0; + if (sockaddr->sa_family == AF_INET6) { + ((struct sockaddr_in6 *)sockaddr)->sin6_port + = htons (0); + } else { + ((struct sockaddr_in *)sockaddr)->sin_port + = htons (0); + } + ret = rdma_bind_addr (cm_id, sockaddr); } break; -- cgit