Browse Source

Upgrade libuv to 2d1c672e

Bert Belder 13 years ago
parent
commit
0a127d6a69
  1. 11
      deps/uv/src/win/fs.c
  2. 5
      deps/uv/src/win/winapi.h
  3. 2
      deps/uv/test/test-fs.c

11
deps/uv/src/win/fs.c

@ -118,8 +118,6 @@ static void uv_fs_req_init_sync(uv_loop_t* loop, uv_fs_t* req,
req->errorno = 0; req->errorno = 0;
} }
/* this is where the CRT stores the current umask */
extern int _umaskval;
void fs__open(uv_fs_t* req, const char* path, int flags, int mode) { void fs__open(uv_fs_t* req, const char* path, int flags, int mode) {
DWORD access; DWORD access;
@ -128,7 +126,12 @@ void fs__open(uv_fs_t* req, const char* path, int flags, int mode) {
DWORD disposition; DWORD disposition;
DWORD attributes; DWORD attributes;
HANDLE file; HANDLE file;
int result; int result, current_umask;
/* Obtain the active umask. umask() never fails and returns the previous */
/* umask. */
current_umask = umask(0);
umask(current_umask);
/* convert flags and mode to CreateFile parameters */ /* convert flags and mode to CreateFile parameters */
switch (flags & (_O_RDONLY | _O_WRONLY | _O_RDWR)) { switch (flags & (_O_RDONLY | _O_WRONLY | _O_RDWR)) {
@ -188,7 +191,7 @@ void fs__open(uv_fs_t* req, const char* path, int flags, int mode) {
attributes = FILE_ATTRIBUTE_NORMAL; attributes = FILE_ATTRIBUTE_NORMAL;
if (flags & _O_CREAT) { if (flags & _O_CREAT) {
if (!((mode & ~_umaskval) & _S_IWRITE)) { if (!((mode & ~current_umask) & _S_IWRITE)) {
attributes |= FILE_ATTRIBUTE_READONLY; attributes |= FILE_ATTRIBUTE_READONLY;
} }
} }

5
deps/uv/src/win/winapi.h

@ -4241,6 +4241,11 @@ typedef enum _FILE_INFORMATION_CLASS {
# define FILE_WRITE_ACCESS 0x0002 # define FILE_WRITE_ACCESS 0x0002
#endif #endif
#ifndef CTL_CODE
# define CTL_CODE(device_type, function, method, access) \
(((device_type) << 16) | ((access) << 14) | ((function) << 2) | (method))
#endif
#ifndef FSCTL_SET_REPARSE_POINT #ifndef FSCTL_SET_REPARSE_POINT
# define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, \ # define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, \
41, \ 41, \

2
deps/uv/test/test-fs.c

@ -1096,7 +1096,7 @@ TEST_IMPL(fs_symlink) {
ASSERT(r == 0); ASSERT(r == 0);
#ifdef _WIN32 #ifdef _WIN32
if (req.result == -1) { if (req.result == -1) {
if (req.errorno == ENOTSUP) { if (req.errorno == ENOSYS) {
/* /*
* Windows doesn't support symlinks on older versions. * Windows doesn't support symlinks on older versions.
* We just pass the test and bail out early if we get ENOTSUP. * We just pass the test and bail out early if we get ENOTSUP.

Loading…
Cancel
Save