[Pkg-ofed-commits] [libfabric] 52/123: prov/sockets: Removed common code and added a function to get src_addr from hostname
Ana Beatriz Guerrero López
ana at moszumanska.debian.org
Sat Oct 22 12:28:29 UTC 2016
This is an automated email from the git hooks/post-receive script.
ana pushed a commit to annotated tag v1.1.1
in repository libfabric.
commit 71d6b752a4079bf9945b773be8658b956b48afec
Author: shantonu <shantonu.hossain at intel.com>
Date: Tue Aug 18 10:57:34 2015 -0700
prov/sockets: Removed common code and added a function to get src_addr from hostname
Signed-off-by: Shantonu Hossain <shantonu.hossain at intel.com>
---
prov/sockets/src/sock.h | 1 +
prov/sockets/src/sock_conn.c | 19 ++-----------------
prov/sockets/src/sock_ep.c | 41 +++++++++++++++++++++++------------------
prov/sockets/src/sock_ep_msg.c | 21 +++------------------
prov/sockets/src/sock_fabric.c | 22 ++--------------------
5 files changed, 31 insertions(+), 73 deletions(-)
diff --git a/prov/sockets/src/sock.h b/prov/sockets/src/sock.h
index a45bbb2..324b4c7 100644
--- a/prov/sockets/src/sock.h
+++ b/prov/sockets/src/sock.h
@@ -896,6 +896,7 @@ int sock_msg_verify_ep_attr(struct fi_ep_attr *ep_attr, struct fi_tx_attr *tx_at
struct fi_rx_attr *rx_attr);
int sock_get_src_addr(struct sockaddr_in *dest_addr,
struct sockaddr_in *src_addr);
+int sock_get_src_addr_from_hostname(struct sockaddr_in *src_addr, const char *service);
struct fi_info *sock_fi_info(enum fi_ep_type ep_type,
struct fi_info *hints, void *src_addr, void *dest_addr);
diff --git a/prov/sockets/src/sock_conn.c b/prov/sockets/src/sock_conn.c
index 52c8502..2c8a8a2 100644
--- a/prov/sockets/src/sock_conn.c
+++ b/prov/sockets/src/sock_conn.c
@@ -431,8 +431,6 @@ int sock_conn_listen(struct sock_ep *ep)
struct sockaddr_in addr;
struct sock_conn_listener *listener = &ep->listener;
struct sock_domain *domain = ep->domain;
- struct addrinfo ai, *rai = NULL;
- char hostname[HOST_NAME_MAX] = {0};
char service[NI_MAXSERV] = {0};
memset(&hints, 0, sizeof(hints));
@@ -490,23 +488,10 @@ int sock_conn_listen(struct sock_ep *ep)
}
if (ep->src_addr->sin_addr.s_addr == 0) {
- memset(&ai, 0, sizeof(ai));
- ai.ai_family = AF_INET;
- ai.ai_socktype = SOCK_STREAM;
-
sprintf(service, "%s", listener->service);
- if (gethostname(hostname, sizeof hostname) != 0) {
- SOCK_LOG_DBG("gethostname failed!\n");
+ ret = sock_get_src_addr_from_hostname(ep->src_addr, service);
+ if (ret)
goto err;
- }
- ret = getaddrinfo(hostname, service, &ai, &rai);
- if (ret) {
- SOCK_LOG_DBG("getaddrinfo failed!\n");
- goto err;
- }
- memcpy(ep->src_addr, (struct sockaddr_in *)rai->ai_addr,
- sizeof *ep->src_addr);
- freeaddrinfo(rai);
}
if (listen(listen_fd, SOCK_CM_DEF_BACKLOG)) {
diff --git a/prov/sockets/src/sock_ep.c b/prov/sockets/src/sock_ep.c
index 549e9e4..89b2bad 100644
--- a/prov/sockets/src/sock_ep.c
+++ b/prov/sockets/src/sock_ep.c
@@ -1342,12 +1342,33 @@ struct fi_info *sock_fi_info(enum fi_ep_type ep_type, struct fi_info *hints,
return info;
}
-static int sock_ep_assign_src_addr(struct sock_ep *sock_ep, struct fi_info *info)
+int sock_get_src_addr_from_hostname(struct sockaddr_in *src_addr, const char *service)
{
int ret;
struct addrinfo ai, *rai = NULL;
char hostname[HOST_NAME_MAX];
+ memset(&ai, 0, sizeof(ai));
+ ai.ai_family = AF_INET;
+ ai.ai_socktype = SOCK_STREAM;
+
+ if (gethostname(hostname, sizeof hostname) != 0) {
+ SOCK_LOG_DBG("gethostname failed!\n");
+ return -FI_EINVAL;
+ }
+ ret = getaddrinfo(hostname, service, &ai, &rai);
+ if (ret) {
+ SOCK_LOG_DBG("getaddrinfo failed!\n");
+ return -FI_EINVAL;
+ }
+ memcpy(src_addr, (struct sockaddr_in *)rai->ai_addr,
+ sizeof *src_addr);
+ freeaddrinfo(rai);
+ return 0;
+}
+
+static int sock_ep_assign_src_addr(struct sock_ep *sock_ep, struct fi_info *info)
+{
sock_ep->src_addr = calloc(1, sizeof(struct sockaddr_in));
if (!sock_ep->src_addr)
return -FI_ENOMEM;
@@ -1355,24 +1376,8 @@ static int sock_ep_assign_src_addr(struct sock_ep *sock_ep, struct fi_info *info
if (info && info->dest_addr) {
return sock_get_src_addr(info->dest_addr, sock_ep->src_addr);
} else {
- memset(&ai, 0, sizeof(ai));
- ai.ai_family = AF_INET;
- ai.ai_socktype = SOCK_STREAM;
-
- if (gethostname(hostname, sizeof hostname) != 0) {
- SOCK_LOG_DBG("gethostname failed!\n");
- return -FI_EINVAL;
- }
- ret = getaddrinfo(hostname, NULL, &ai, &rai);
- if (ret) {
- SOCK_LOG_DBG("getaddrinfo failed!\n");
- return -FI_EINVAL;
- }
- memcpy(sock_ep->src_addr, (struct sockaddr_in *)rai->ai_addr,
- sizeof *sock_ep->src_addr);
- freeaddrinfo(rai);
+ return sock_get_src_addr_from_hostname(sock_ep->src_addr, NULL);
}
- return 0;
}
int sock_alloc_endpoint(struct fid_domain *domain, struct fi_info *info,
diff --git a/prov/sockets/src/sock_ep_msg.c b/prov/sockets/src/sock_ep_msg.c
index f96faa6..edb57c6 100644
--- a/prov/sockets/src/sock_ep_msg.c
+++ b/prov/sockets/src/sock_ep_msg.c
@@ -273,7 +273,6 @@ static int sock_pep_create_listener(struct sock_pep *pep)
struct addrinfo hints;
char sa_ip[INET_ADDRSTRLEN] = {0};
char sa_port[NI_MAXSERV] = {0};
- char hostname[HOST_NAME_MAX] = {0};
pep->cm.do_listen = 1;
@@ -326,24 +325,10 @@ static int sock_pep_create_listener(struct sock_pep *pep)
}
if (pep->src_addr.sin_addr.s_addr == 0) {
- memset(&hints, 0, sizeof(hints));
- hints.ai_family = AF_INET;
- hints.ai_socktype = SOCK_STREAM;
-
- if (gethostname(hostname, sizeof hostname) != 0) {
- SOCK_LOG_DBG("gethostname failed!\n");
- return -FI_EINVAL;
- }
- ret = getaddrinfo(hostname, sa_port, &hints, &s_res);
- if (ret) {
- SOCK_LOG_DBG("getaddrinfo failed!\n");
- return -FI_EINVAL;
- }
- memcpy(&pep->src_addr, (struct sockaddr_in *)s_res->ai_addr,
- sizeof pep->src_addr);
- freeaddrinfo(s_res);
+ ret = sock_get_src_addr_from_hostname(&pep->src_addr, sa_port);
+ if (ret)
+ return -FI_EINVAL;
}
-
SOCK_LOG_DBG("Listener thread bound to %s:%d\n",
sa_ip, ntohs(pep->src_addr.sin_port));
diff --git a/prov/sockets/src/sock_fabric.c b/prov/sockets/src/sock_fabric.c
index f3c594d..1ba9ced 100644
--- a/prov/sockets/src/sock_fabric.c
+++ b/prov/sockets/src/sock_fabric.c
@@ -393,8 +393,6 @@ int sock_get_src_addr(struct sockaddr_in *dest_addr,
{
int sock, ret;
socklen_t len;
- struct addrinfo ai, *rai = NULL;
- char hostname[HOST_NAME_MAX];
sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock < 0)
@@ -404,24 +402,8 @@ int sock_get_src_addr(struct sockaddr_in *dest_addr,
ret = connect(sock, (struct sockaddr*)dest_addr, len);
if (ret) {
SOCK_LOG_DBG("Failed to connect udp socket\n");
-
- if (gethostname(hostname, sizeof hostname) != 0) {
- SOCK_LOG_DBG("gethostname failed!\n");
- ret = -FI_EINVAL;
- goto out;
- }
-
- ret = getaddrinfo(hostname, NULL, &ai, &rai);
- if (ret) {
- SOCK_LOG_DBG("getaddrinfo failed!\n");
- ret = -FI_EINVAL;
- goto out;
- }
-
- memcpy(src_addr, (struct sockaddr_in *)rai->ai_addr,
- sizeof *src_addr);
- freeaddrinfo(rai);
- ret = 0;
+
+ ret = sock_get_src_addr_from_hostname(src_addr, NULL);
goto out;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ofed/libfabric.git
More information about the Pkg-ofed-commits
mailing list