From 8c0bb45c9f002461d5c4a63e35ae215958405fb5 Mon Sep 17 00:00:00 2001 From: Amgad Saleh Date: Thu, 23 May 2019 20:27:03 -0500 Subject: If bind-address is IPv6 return it successfully >Change-Id: Ibd37b6ea82b781a1a266b95f7596874134f30079 >fixes: bz#1713730 >Signed-off-by: Amgad Saleh fixes: bz#1715012 Change-Id: I9a9877b6c32a1ccbd119301a4225808ddaa02de4 Signed-off-by: Hari Gowtham --- rpc/rpc-transport/socket/src/name.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/rpc/rpc-transport/socket/src/name.c b/rpc/rpc-transport/socket/src/name.c index ca14402ed4a..14c11cb835f 100644 --- a/rpc/rpc-transport/socket/src/name.c +++ b/rpc/rpc-transport/socket/src/name.c @@ -362,6 +362,9 @@ af_inet_server_get_local_sockaddr(rpc_transport_t *this, struct sockaddr *addr, dict_t *options = NULL; int32_t ret = 0; + /* initializes addr_len */ + *addr_len = 0; + options = this->options; listen_port_data = dict_get(options, "transport.socket.listen-port"); @@ -413,11 +416,13 @@ af_inet_server_get_local_sockaddr(rpc_transport_t *this, struct sockaddr *addr, } } - if (!(*addr_len) && res && res->ai_addr) { - memcpy(addr, res->ai_addr, res->ai_addrlen); - *addr_len = res->ai_addrlen; - } else { - ret = -1; + if (!(*addr_len)) { + if (res && res->ai_addr) { + memcpy(addr, res->ai_addr, res->ai_addrlen); + *addr_len = res->ai_addrlen; + } else { + ret = -1; + } } freeaddrinfo(res); @@ -596,7 +601,7 @@ socket_server_get_local_sockaddr(rpc_transport_t *this, struct sockaddr *addr, switch (addr->sa_family) { case AF_INET_SDP: addr->sa_family = AF_INET; - /* Fall through */ + /* Fall through */ case AF_INET: case AF_INET6: case AF_UNSPEC: -- cgit