diff --git a/include/uv.h b/include/uv.h index 47fcefcd..e3a8b702 100644 --- a/include/uv.h +++ b/include/uv.h @@ -80,7 +80,7 @@ typedef intptr_t ssize_t; XX( 7, EAFNOSUPPORT, "") \ XX( 8, EALREADY, "") \ XX( 9, EBADF, "bad file descriptor") \ - XX( 10, EBUSY, "mount device busy") \ + XX( 10, EBUSY, "resource busy or locked") \ XX( 11, ECONNABORTED, "software caused connection abort") \ XX( 12, ECONNREFUSED, "connection refused") \ XX( 13, ECONNRESET, "connection reset by peer") \ @@ -120,7 +120,8 @@ typedef intptr_t ssize_t; XX( 49, ENAMETOOLONG, "name too long") \ XX( 50, EPERM, "operation not permitted") \ XX( 51, ELOOP, "too many symbolic links encountered") \ - XX( 52, EXDEV, "cross-device link not permitted") + XX( 52, EXDEV, "cross-device link not permitted") \ + XX( 53, ENOTEMPTY, "directory not empty") #define UV_ERRNO_GEN(val, name, s) UV_##name = val, diff --git a/src/unix/error.c b/src/unix/error.c index b167f7af..b6c47105 100644 --- a/src/unix/error.c +++ b/src/unix/error.c @@ -88,6 +88,8 @@ uv_err_code uv_translate_sys_error(int sys_errno) { case ESRCH: return UV_ESRCH; case ETIMEDOUT: return UV_ETIMEDOUT; case EXDEV: return UV_EXDEV; + case EBUSY: return UV_EBUSY; + case ENOTEMPTY: return UV_ENOTEMPTY; default: return UV_UNKNOWN; } UNREACHABLE(); diff --git a/src/win/error.c b/src/win/error.c index 851d2728..4fc87349 100644 --- a/src/win/error.c +++ b/src/win/error.c @@ -78,6 +78,8 @@ uv_err_code uv_translate_sys_error(int sys_errno) { case WSAEAFNOSUPPORT: return UV_EAFNOSUPPORT; case WSAEWOULDBLOCK: return UV_EAGAIN; case WSAEALREADY: return UV_EALREADY; + case ERROR_LOCK_VIOLATION: return UV_EBUSY; + case ERROR_SHARING_VIOLATION: return UV_EBUSY; case ERROR_CONNECTION_ABORTED: return UV_ECONNABORTED; case WSAECONNABORTED: return UV_ECONNABORTED; case ERROR_CONNECTION_REFUSED: return UV_ECONNREFUSED; @@ -102,6 +104,7 @@ uv_err_code uv_translate_sys_error(int sys_errno) { case ERROR_OUTOFMEMORY: return UV_ENOMEM; case ERROR_NOT_CONNECTED: return UV_ENOTCONN; case WSAENOTCONN: return UV_ENOTCONN; + case ERROR_DIR_NOT_EMPTY: return UV_ENOTEMPTY; case ERROR_NOT_SUPPORTED: return UV_ENOTSUP; case ERROR_INSUFFICIENT_BUFFER: return UV_EINVAL; case ERROR_INVALID_FLAGS: return UV_EBADF; diff --git a/src/win/util.c b/src/win/util.c index 15618e92..6ded755c 100644 --- a/src/win/util.c +++ b/src/win/util.c @@ -610,6 +610,7 @@ void uv_filetime_to_time_t(FILETIME* file_time, time_t* stat_time) { time.tm_hour = system_time.wHour; time.tm_min = system_time.wMinute; time.tm_sec = system_time.wSecond; + time.tm_isdst = -1; *stat_time = mktime(&time); } else {