aboutgitcodebugslistschat
diff options
context:
space:
mode:
-rw-r--r--flow.c6
-rw-r--r--tcp.c4
-rw-r--r--udp_flow.c7
3 files changed, 9 insertions, 8 deletions
diff --git a/flow.c b/flow.c
index dd92bad..9882843 100644
--- a/flow.c
+++ b/flow.c
@@ -259,7 +259,7 @@ int flowside_sock_l4(const struct ctx *c, enum epoll_type type, uint8_t pif,
*
* Connect @s to the endpoint address and port from @tgt.
*
- * Return: 0 on success, negative on error
+ * Return: 0 on success, negative error code on error
*/
int flowside_connect(const struct ctx *c, int s,
uint8_t pif, const struct flowside *tgt)
@@ -267,7 +267,9 @@ int flowside_connect(const struct ctx *c, int s,
union sockaddr_inany sa;
pif_sockaddr(c, &sa, pif, &tgt->eaddr, tgt->eport);
- return connect(s, &sa.sa, socklen_inany(&sa));
+ if (connect(s, &sa.sa, socklen_inany(&sa)) < 0)
+ return -errno;
+ return 0;
}
/** flow_log__ - Log flow-related message, internal helper
diff --git a/tcp.c b/tcp.c
index 6fba865..8181364 100644
--- a/tcp.c
+++ b/tcp.c
@@ -3744,8 +3744,8 @@ static int tcp_flow_repair_connect(const struct ctx *c,
rc = flowside_connect(c, conn->sock, PIF_HOST, tgt);
if (rc) {
- rc = -errno;
- flow_perror(conn, "Failed to connect migrated socket");
+ flow_err(conn, "Failed to connect migrated socket: %s",
+ strerror_(-rc));
return rc;
}
diff --git a/udp_flow.c b/udp_flow.c
index 35417bc..6edfa65 100644
--- a/udp_flow.c
+++ b/udp_flow.c
@@ -88,13 +88,12 @@ static int udp_flow_sock(const struct ctx *c,
return rc;
}
- if (flowside_connect(c, s, pif, side) < 0) {
- rc = -errno;
-
+ if ((rc = flowside_connect(c, s, pif, side)) < 0) {
epoll_del(flow_epollfd(&uflow->f), s);
close(s);
- flow_dbg_perror(uflow, "Couldn't connect flow socket");
+ flow_dbg(uflow, "Couldn't connect flow socket: %s",
+ strerror_(-rc));
return rc;
}
uflow->s[sidei] = s;