From: Ondřej Surý Date: Tue, 15 Feb 2022 13:44:29 +0000 (+0100) Subject: Add UV_RUNTIME_CHECK() macro to print uv_strerror() X-Git-Tag: v9.19.0~114^2~2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=62e15bb06db5e7d209e8c20d7bdb1501df7dfba8;p=thirdparty%2Fbind9.git Add UV_RUNTIME_CHECK() macro to print uv_strerror() When libuv functions fail, they return correct return value that could be useful for more detailed debugging. Currently, we usually just check whether the return value is 0 and invoke assertion error if it doesn't throwing away the details why the call has failed. Unfortunately, this often happen on more exotic platforms. Add a UV_RUNTIME_CHECK() macro that can be used to print more detailed error message (via uv_strerror() before ending the execution of the program abruptly with the assertion. --- diff --git a/lib/isc/netmgr/netmgr-int.h b/lib/isc/netmgr/netmgr-int.h index b8a49feef20..2ce53402b2d 100644 --- a/lib/isc/netmgr/netmgr-int.h +++ b/lib/isc/netmgr/netmgr-int.h @@ -2078,3 +2078,9 @@ void isc__nm_accept_connection_log(isc_result_t result, bool can_log_quota); #define STREAM_CLIENTS_PER_CONN 23 + +#define UV_RUNTIME_CHECK(func, ret) \ + if (ret != 0) { \ + isc_error_fatal(__FILE__, __LINE__, "%s failed: %s\n", #func, \ + uv_strerror(ret)); \ + }