Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [librdmacm] examples: Use gai_strerror rather than perror for
[rdma_]getaddrinfo failures
From: Hal Rosenstock <hal@dev.mellanox.co.il>
X-Patchwork-Id:
7297841
Message-Id: <
560BDD4C.
8070600@dev.mellanox.co.il>
To: "Hefty, Sean" <sean.hefty@intel.com>
Cc: "linux-rdma (linux-rdma@vger.kernel.org)" <linux-rdma@vger.kernel.org>
Date: Wed, 30 Sep 2015 09:02:04 -0400
[rdma_]getaddrinfo error codes are decoded by gai_strerror (and not
set in errno) so replace perror calls following these failed calls.
Signed-off-by: Hal Rosenstock <hal@mellanox.com>
ret = get_rdma_addr(src_addr, dst_addr, port, &hints, &test.rai);
if (ret) {
- perror("cmatose: getrdmaaddr error");
+ printf("cmatose: getrdmaaddr error: %s\n", gai_strerror(ret));
goto out;
}
ret = get_rdma_addr(src_addr, dst_addr, port, &hints, &test.rai);
if (ret) {
- perror("cmatose: getaddrinfo error");
+ printf("cmatose: getaddrinfo error: %s\n", gai_strerror(ret));
return ret;
}
ret = get_rdma_addr(src_addr, dst_addr, port, &hints, &rai);
if (ret) {
- perror("getrdmaaddr error");
+ printf("getrdmaaddr error: %s\n", gai_strerror(ret));
goto out;
}
ret = get_rdma_addr(src_addr, dst_addr, port, &hints, &rai);
if (ret) {
- perror("getaddrinfo error");
+ printf("getaddrinfo error: %s\n", gai_strerror(ret));
return ret;
}
ret = getaddrinfo(dst, NULL, NULL, &res);
if (ret) {
- printf("getaddrinfo failed - invalid hostname or IP address\n");
+ printf("getaddrinfo failed (%s) - invalid hostname or IP address\n", gai_strerror(ret));
return ret;
}
hints.ai_flags = RAI_PASSIVE;
ret = getaddrinfo(NULL, port, &hints, &res);
if (ret) {
- perror("getaddrinfo failed\n");
+ printf("getaddrinfo failed: %s\n", gai_strerror(ret));
return ret;
}
ret = getaddrinfo(dst_addr, port, NULL, &res);
if (ret) {
- perror("getaddrinfo failed\n");
+ printf("getaddrinfo failed: %s\n", gai_strerror(ret));
return ret;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <netdb.h>
#include <errno.h>
#include <getopt.h>
#include <rdma/rdma_cma.h>
hints.ai_port_space = RDMA_PS_TCP;
ret = rdma_getaddrinfo(server, port, &hints, &res);
if (ret) {
- perror("rdma_getaddrinfo");
+ printf("rdma_getaddrinfo: %s\n", gai_strerror(ret));
goto out;
}
hints.ai_port_space = RDMA_PS_TCP;
ret = rdma_getaddrinfo(NULL, port, &hints, &res);
if (ret) {
- perror("rdma_getaddrinfo");
+ printf("rdma_getaddrinfo: %s\n", gai_strerror(ret));
return ret;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <netdb.h>
#include <errno.h>
#include <getopt.h>
#include <ctype.h>
ret = rdma_getaddrinfo(server, port, &hints, &res);
if (ret) {
- perror("rdma_getaddrinfo");
+ printf("rdma_getaddrinfo: %s\n", gai_strerror(ret));
return ret;
}
ret = rdma_getaddrinfo(NULL, port, &hints, &res);
if (ret) {
- perror("rdma_getaddrinfo");
+ printf("rdma_getaddrinfo: %s\n", gai_strerror(ret));
return ret;
}
ret = getaddrinfo(src_addr, port, &ai_hints, &ai);
}
if (ret) {
- perror("getaddrinfo");
+ printf("getaddrinfo: %s\n", gai_strerror(ret));
return ret;
}
ret = use_rgai ? rdma_getaddrinfo(dst_addr, port, &rai_hints, &rai) :
getaddrinfo(dst_addr, port, &ai_hints, &ai);
if (ret) {
- perror("getaddrinfo");
+ printf("getaddrinfo: %s\n", gai_strerror(ret));
return ret;
}
fds.fd = rs;
fds.events = POLLOUT;
ret = do_poll(&fds, poll_timeout);
- if (ret)
+ if (ret) {
+ perror("rpoll");
goto close;
+ }
len = sizeof err;
ret = rgetsockopt(rs, SOL_SOCKET, SO_ERROR, &err, &len);
ret = getaddrinfo(dst, NULL, NULL, &res);
if (ret) {
- printf("getaddrinfo failed - invalid hostname or IP address\n");
+ printf("getaddrinfo failed (%s) - invalid hostname or IP address\n", gai_strerror(ret));
return ret;
}
ret = getaddrinfo(src_addr, port, &ai_hints, &ai);
}
if (ret) {
- perror("getaddrinfo");
+ printf("getaddrinfo: %s\n", gai_strerror(ret));
return ret;
}
getaddrinfo(dst_addr, port, &ai_hints, &ai);
if (ret) {
- perror("getaddrinfo");
+ printf("getaddrinfo: %s\n", gai_strerror(ret));
return ret;
}
rai_hints.ai_flags |= RAI_PASSIVE;
ret = rdma_getaddrinfo(src_addr, port, &rai_hints, &rai_src);
} else {
- ai_hints.ai_flags |= RAI_PASSIVE;
+ ai_hints.ai_flags |= AI_PASSIVE;
ret = getaddrinfo(src_addr, port, &ai_hints, &ai_src);
}
if (ret) {
- perror("getaddrinfo src_addr");
+ printf("getaddrinfo src_addr: %s\n", gai_strerror(ret));
return ret;
}
}
fds.fd = rs;
fds.events = POLLOUT;
ret = do_poll(&fds, poll_timeout);
- if (ret)
+ if (ret) {
+ perror("rpoll");
goto close;
+ }
len = sizeof err;
ret = rs_getsockopt(rs, SOL_SOCKET, SO_ERROR, &err, &len);
ret = get_rdma_addr(src_addr, dst_addr, port, &hints, &test.rai);
if (ret) {
- perror("cmatose: getrdmaaddr error");
+ printf("udaddy: getrdmaaddr error: %s\n", gai_strerror(ret));
goto out;
}
ret = get_rdma_addr(src_addr, dst_addr, port, &hints, &test.rai);
if (ret) {
- perror("udaddy: getaddrinfo error");
+ printf("udaddy: getaddrinfo error: %s\n", gai_strerror(ret));
return ret;
}
hints.ai_socktype = SOCK_DGRAM;
ret = getaddrinfo(src_addr, port, &hints, &res);
if (ret) {
- perror("getaddrinfo");
+ printf("getaddrinfo: %s\n", gai_strerror(ret));
return ret;
}
hints.ai_socktype = SOCK_DGRAM;
ret = getaddrinfo(dst_addr, port, &hints, &res);
if (ret) {
- perror("getaddrinfo");
+ printf("getaddrinfo: %s\n", gai_strerror(ret));
return ret;
}