67 lines
2.5 KiB
Diff
67 lines
2.5 KiB
Diff
|
From 1feb389f80f7595d2f873c3ff8678b52cd2db828 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
|
||
|
Date: Tue, 24 May 2022 19:42:41 +0200
|
||
|
Subject: [PATCH] Fix failures in isc netmgr_test on big endian machines
|
||
|
|
||
|
Typing from libuv structure to isc_region_t is not possible, because
|
||
|
their sizes differ on 64 bit architectures. Little endian machines seems
|
||
|
to be lucky and still result in test passed. But big endian machine such
|
||
|
as s390x fails the test reliably.
|
||
|
|
||
|
Fix by directly creating the buffer as isc_region_t and skipping the
|
||
|
type conversion. More readable and still more correct.
|
||
|
|
||
|
(cherry picked from commit 057438cb45f2f02615dc309e3822f23c0ca70a0a)
|
||
|
---
|
||
|
lib/isc/tests/netmgr_test.c | 18 ++++++++----------
|
||
|
1 file changed, 8 insertions(+), 10 deletions(-)
|
||
|
|
||
|
diff --git a/lib/isc/tests/netmgr_test.c b/lib/isc/tests/netmgr_test.c
|
||
|
index c2d7fffb32..9fa0d47e5b 100644
|
||
|
--- a/lib/isc/tests/netmgr_test.c
|
||
|
+++ b/lib/isc/tests/netmgr_test.c
|
||
|
@@ -62,11 +62,11 @@ static isc_sockaddr_t tcp_connect_addr;
|
||
|
static uint64_t send_magic = 0;
|
||
|
static uint64_t stop_magic = 0;
|
||
|
|
||
|
-static uv_buf_t send_msg = { .base = (char *)&send_magic,
|
||
|
- .len = sizeof(send_magic) };
|
||
|
+static isc_region_t send_msg = { .base = (unsigned char *)&send_magic,
|
||
|
+ .length = sizeof(send_magic) };
|
||
|
|
||
|
-static uv_buf_t stop_msg = { .base = (char *)&stop_magic,
|
||
|
- .len = sizeof(stop_magic) };
|
||
|
+static isc_region_t stop_msg = { .base = (unsigned char *)&stop_magic,
|
||
|
+ .length = sizeof(stop_magic) };
|
||
|
|
||
|
static atomic_bool do_send = false;
|
||
|
static unsigned int workers = 0;
|
||
|
@@ -420,11 +420,9 @@ connect_send(isc_nmhandle_t *handle) {
|
||
|
isc_nmhandle_attach(handle, &sendhandle);
|
||
|
isc_nmhandle_setwritetimeout(handle, T_IDLE);
|
||
|
if (atomic_fetch_sub(&nsends, 1) > 1) {
|
||
|
- isc_nm_send(sendhandle, (isc_region_t *)&send_msg,
|
||
|
- connect_send_cb, NULL);
|
||
|
+ isc_nm_send(sendhandle, &send_msg, connect_send_cb, NULL);
|
||
|
} else {
|
||
|
- isc_nm_send(sendhandle, (isc_region_t *)&stop_msg,
|
||
|
- connect_send_cb, NULL);
|
||
|
+ isc_nm_send(sendhandle, &stop_msg, connect_send_cb, NULL);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@@ -531,8 +529,8 @@ listen_read_cb(isc_nmhandle_t *handle, isc_result_t eresult,
|
||
|
isc_nmhandle_attach(handle, &sendhandle);
|
||
|
isc_refcount_increment0(&active_ssends);
|
||
|
isc_nmhandle_setwritetimeout(sendhandle, T_IDLE);
|
||
|
- isc_nm_send(sendhandle, (isc_region_t *)&send_msg,
|
||
|
- listen_send_cb, cbarg);
|
||
|
+ isc_nm_send(sendhandle, &send_msg, listen_send_cb,
|
||
|
+ cbarg);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
--
|
||
|
2.34.3
|
||
|
|