aboutgitcodebugslistschat
path: root/tcp.c
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2022-03-15 17:57:55 +0100
committerStefano Brivio <sbrivio@redhat.com>2022-03-28 17:11:40 +0200
commit5ca555cf7808eac4d73ad7423d40484692f1fb81 (patch)
tree00f8957f6536925f84bf034f950cbf697a451fd3 /tcp.c
parent5eb7604203c733ffd803636c9f8a1a25cec7851d (diff)
downloadpasst-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar
passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar.gz
passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar.bz2
passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar.lz
passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar.xz
passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.tar.zst
passt-5ca555cf7808eac4d73ad7423d40484692f1fb81.zip
dhcpv6, tap, tcp: Use IN6_ARE_ADDR_EQUAL instead of open-coded memcmp()
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'tcp.c')
-rw-r--r--tcp.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/tcp.c b/tcp.c
index 323dee3..1eeb627 100644
--- a/tcp.c
+++ b/tcp.c
@@ -853,7 +853,7 @@ static int tcp_rtt_dst_low(struct tcp_conn *conn)
int i;
for (i = 0; i < LOW_RTT_TABLE_SIZE; i++)
- if (!memcmp(&conn->a.a6, low_rtt_dst + i, sizeof(conn->a.a6)))
+ if (IN6_ARE_ADDR_EQUAL(&conn->a.a6, low_rtt_dst + i))
return 1;
return 0;
@@ -874,7 +874,7 @@ static void tcp_rtt_dst_check(struct tcp_conn *conn, struct tcp_info *tinfo)
return;
for (i = 0; i < LOW_RTT_TABLE_SIZE; i++) {
- if (!memcmp(&conn->a.a6, low_rtt_dst + i, sizeof(conn->a.a6)))
+ if (IN6_ARE_ADDR_EQUAL(&conn->a.a6, low_rtt_dst + i))
return;
if (hole == -1 && IN6_IS_ADDR_UNSPECIFIED(low_rtt_dst + i))
hole = i;
@@ -1181,7 +1181,7 @@ static int tcp_hash_match(struct tcp_conn *conn, int af, void *addr,
return 1;
if (af == AF_INET6 &&
- !memcmp(&conn->a.a6, addr, sizeof(conn->a.a6)) &&
+ IN6_ARE_ADDR_EQUAL(&conn->a.a6, addr) &&
conn->tap_port == tap_port && conn->sock_port == sock_port)
return 1;
@@ -2047,7 +2047,7 @@ static void tcp_conn_from_tap(struct ctx *c, int af, void *addr,
if (!c->no_map_gw) {
if (af == AF_INET && addr4.sin_addr.s_addr == c->gw4)
addr4.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
- if (af == AF_INET6 && !memcmp(addr, &c->gw6, sizeof(c->gw6)))
+ if (af == AF_INET6 && IN6_ARE_ADDR_EQUAL(addr, &c->gw6))
addr6.sin6_addr = in6addr_loopback;
}
@@ -2699,8 +2699,8 @@ static void tcp_conn_from_sock(struct ctx *c, union epoll_ref ref,
memcpy(&sa6, &sa, sizeof(sa6));
if (IN6_IS_ADDR_LOOPBACK(&sa6.sin6_addr) ||
- !memcmp(&sa6.sin6_addr, &c->addr6_seen, sizeof(c->gw6)) ||
- !memcmp(&sa6.sin6_addr, &c->addr6, sizeof(c->gw6))) {
+ IN6_ARE_ADDR_EQUAL(&sa6.sin6_addr, &c->addr6_seen) ||
+ IN6_ARE_ADDR_EQUAL(&sa6.sin6_addr, &c->addr6)) {
struct in6_addr *src;
if (IN6_IS_ADDR_LINKLOCAL(&c->gw6))