The uv_req_get_data() and uv_req_set_data() functions were introduced in
libuv >= 1.19.0, so we need to add compatibility shims with older libuv
versions.
/* Define to 1 if you have the `uv_handle_set_data' function. */
#define HAVE_UV_HANDLE_SET_DATA 1
+/* Define to 1 if you have the `uv_req_get_data' function. */
+#define HAVE_UV_REQ_GET_DATA 1
+
+/* Define to 1 if you have the `uv_req_set_data' function. */
+#define HAVE_UV_REQ_SET_DATA 1
+
/* GSSAPI Related defines */
@HAVE_GSSAPI@
@HAVE_GSSAPI_H@
# Those functions are only provided in newer versions of libuv, we'll be emulating them
# for now
-AC_CHECK_FUNCS([uv_handle_get_data uv_handle_set_data uv_udp_connect uv_translate_sys_error uv_sleep])
+AC_CHECK_FUNCS([uv_handle_get_data uv_handle_set_data])
+AC_CHECK_FUNCS([uv_req_get_data uv_req_set_data])
+AC_CHECK_FUNCS([uv_udp_connect uv_translate_sys_error uv_sleep])
AX_RESTORE_FLAGS([libuv])
# libnghttp2
}
#endif /* ifndef HAVE_UV_HANDLE_SET_DATA */
+#ifndef HAVE_UV_REQ_GET_DATA
+static inline void *
+uv_req_get_data(const uv_req_t *req) {
+ return (req->data);
+}
+#endif /* ifndef HAVE_UV_REQ_GET_DATA */
+
+#ifndef HAVE_UV_REQ_SET_DATA
+static inline void
+uv_req_set_data(uv_req_t *req, void *data) {
+ req->data = data;
+}
+#endif /* ifndef HAVE_UV_REQ_SET_DATA */
+
#ifndef HAVE_UV_SLEEP
#define uv_sleep(msec) usleep(msec * 1000)
#endif