diff --git a/src/uv-common.c b/src/uv-common.c index 599d6257..2f16c7ab 100644 --- a/src/uv-common.c +++ b/src/uv-common.c @@ -121,8 +121,7 @@ void uv__set_sys_error(uv_loop_t* loop, int sys_error) { void uv__set_artificial_error(uv_loop_t* loop, uv_err_code code) { - loop->last_err.code = code; - loop->last_err.sys_errno_ = 0; + loop->last_err = uv__new_artificial_error(code); } @@ -134,6 +133,14 @@ uv_err_t uv__new_sys_error(int sys_error) { } +uv_err_t uv__new_artificial_error(uv_err_code code) { + uv_err_t error; + error.code = code; + error.sys_errno_ = 0; + return error; +} + + uv_err_t uv_last_error(uv_loop_t* loop) { return loop->last_err; } diff --git a/src/uv-common.h b/src/uv-common.h index eecb1304..5d990367 100644 --- a/src/uv-common.h +++ b/src/uv-common.h @@ -55,6 +55,7 @@ void uv__set_error(uv_loop_t* loop, uv_err_code code, int sys_error); void uv__set_sys_error(uv_loop_t* loop, int sys_error); void uv__set_artificial_error(uv_loop_t* loop, uv_err_code code); uv_err_t uv__new_sys_error(int sys_error); +uv_err_t uv__new_artificial_error(uv_err_code code); int uv__tcp_bind(uv_tcp_t* handle, struct sockaddr_in addr); int uv__tcp_bind6(uv_tcp_t* handle, struct sockaddr_in6 addr);