Commit Graph

2276 Commits

Author SHA1 Message Date
Jameson Nash
0e2814179c
unix: remove incorrect assertion in uv_shutdown()
It isn't necessary, and doesn't agree with the printed message.

PR-URL: https://github.com/libuv/libuv/pull/1620
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2017-11-30 20:14:21 -05:00
Bartosz Sosnowski
d708df110a
unix,win: add uv_os_getpid()
Adds a multi platform way to get current process id.

PR-URL: https://github.com/libuv/libuv/pull/1661
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-11-30 20:11:21 -05:00
Ben Noordhuis
49616e4e17 Revert "unix,win: wait for threads to start"
Reverted for suspected regressions in the Node.js test suite on Windows.

Also revert e99ac4c1f4 ("test: add threadpool init/teardown test") since
it depends on 5486f6bd51.

This reverts commit 5486f6bd51.
This reverts commit e99ac4c1f4.

PR-URL: https://github.com/libuv/libuv/pull/1656
Refs: https://github.com/libuv/libuv/pull/1639
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-11-30 02:24:22 +01:00
cjihrig
9f70d39b5a
aix: fix -Wmaybe-uninitialized warning
PR-URL: https://github.com/libuv/libuv/pull/1650
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2017-11-27 21:33:07 -05:00
Xu Meng
bb3d093bbb ibmi: add support for new platform
Support the IBM i platform.

- add a new file src/unix/ibmi.c
- extract the common functions from /src/unix/aix.c into aix-common.c
- update uv.gyp and include/uv-unix.h to enable the new file ibmi.c

PR-URL: https://github.com/libuv/libuv/pull/1601
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2017-11-22 12:18:04 +01:00
Ben Noordhuis
5070620777 win: issue memory barrier in uv_thread_join()
I'm 99% sure `WaitForSingleObject()` already issues a memory barrier for
thread objects but since I could find no mention of that on MSDN, let's
play it safe and do it ourselves, too.

PR-URL: https://github.com/libuv/libuv/pull/1634
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-11-20 20:59:33 +01:00
Ben Noordhuis
5486f6bd51 unix,win: wait for threads to start
It appears that, at least on Windows, the process terminates abnormally
when the program exits before the worker threads complete initializing.
Wait for the threads to spin up in `init_threads()` to avoid that.

Refs: https://github.com/libuv/libuv/pull/1613#issuecomment-344958863
PR-URL: https://github.com/libuv/libuv/pull/1639
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2017-11-20 20:35:02 +01:00
John Barboza
c5dd2d4218
unix: keep track of bound sockets sent via spawn
We use the UV_HANDLE_BOUND flag to mark a socket as bound to a
port. We need to do this for sockets that are sent from another
process as well as sockets that created by the process itself.
First check if the port number is non-zero. If yes then mark
it as bound.

PR-URL: https://github.com/libuv/libuv/pull/1348
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2017-11-20 18:36:26 +01:00
John Barboza
88d716e126 zos: add strnlen() implementation
Add an implementation of strnlen() which is not provided by default.

PR-URL: https://github.com/libuv/libuv/pull/1631
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-11-18 13:14:08 +01:00
Ben Noordhuis
facac20348 win: fix build on case-sensitive file systems
Cross-compiling with mingw64 was broken because the header files are
called `accctrl.h` and `aclapi.h` whereas libuv was trying to include
`AccCtrl.h` and `AclAPI.h`.

PR-URL: https://github.com/libuv/libuv/pull/1629
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-11-17 12:59:59 +01:00
Joran Dirk Greef
1c4de1916e win: map UV_FS_O_EXLOCK to a share mode of 0
This is necessary to enable writing past the MBR of a raw block device.

Fixes: https://github.com/libuv/libuv/issues/1605
PR-URL: https://github.com/libuv/libuv/pull/1613
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2017-11-16 15:14:52 +01:00
Ben Noordhuis
c1ff7cc6aa unix: avoid malloc() call in uv_spawn()
The stdio count for the new process is almost always a low number that
we can allocate on the stack instead of the heap.

PR-URL: https://github.com/libuv/libuv/pull/1626
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2017-11-15 13:49:33 +01:00
Nick Logan
84fa7fc742
win: fix undeclared NDIS_IF_MAX_STRING_SIZE
NDIS_IF_MAX_STRING_SIZE does not appear to be available on
some Windows systems. This commit defines it using the same logic
used by Wireshark.

See: 07eade8124/capture_win_ifnames.c (L42-L44)
Refs: https://github.com/nodejs/node/pull/16835
Refs: https://github.com/libuv/libuv/pull/1445
PR-URL: https://github.com/libuv/libuv/pull/1623
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2017-11-10 11:07:35 -05:00
cjihrig
c83f8b91af
unix: move net/if.h include
This commit moves the net/if.h include into src/getaddrinfo.c to
prevent AIX compilation errors. With these symbols exposed
publicly, Node.js compilation failed on AIX by exposing Free(),
which conflicts with another API.

Refs: https://github.com/nodejs/node/pull/16835
Refs: https://github.com/libuv/libuv/pull/1445
PR-URL: https://github.com/libuv/libuv/pull/1622
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-11-09 08:43:22 -05:00
Pekka Nikander
695afe8322
unix,win: add uv_if_{indextoname,indextoiid}
uv_if_indextoname() is used to convert an IPv6 scope_id
to an interface identifier string such as %eth0 or %lo.

uv_if_indextoiid() returns an IPv6 interface identifier.
On Unix it calls uv_if_indextoname(). On Windows it uses
snprintf() to return the numeric interface identifier as
a string.

Refs: https://github.com/nodejs/node/pull/14500
PR-URL: https://github.com/libuv/libuv/pull/1445
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-11-06 09:54:47 -05:00
Bartosz Sosnowski
fd02ab681b pipe: allow access from other users
Adds new uv_pipe_chmod function which can be used to make the pipe
writable or readable by all users.

PR-URL: https://github.com/libuv/libuv/pull/1386
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-11-06 15:45:00 +01:00
Bartosz Sosnowski
e7f4e9ecca tty, win: get SetWinEventHook pointer at startup
SetWinEventHook is not available on some Windows versions.

Fixes: https://github.com/nodejs/node/issues/16603
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-11-03 12:18:52 +01:00
Jameson Nash
6445cc6308
win, pipe: null-initialize stream->shutdown_req
When initializing a stream on Windows, this also inits the
shutdown_req field, instead of waiting for a successful
connection. A NULL value is used as a sentinel to check for whether
this handle is currently in the shutdown state, and it may not get
set if a stream was not connected immediately.

PR-URL: https://github.com/libuv/libuv/pull/1500
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2017-11-01 12:32:10 -04:00
cjihrig
e8e6a8a500
unix,win: add uv_os_getppid()
Refs: https://github.com/nodejs/node/issues/14957
PR-URL: https://github.com/libuv/libuv/pull/1610
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2017-11-01 10:32:12 -04:00
Bartosz Sosnowski
719dfecf95 win: fix non-English dlopen error message
Extend https://github.com/libuv/libuv/pull/1116 to work on other
Windows languages.

PR-URL: https://github.com/libuv/libuv/pull/1585
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-10-19 15:31:39 +02:00
John Barboza
44b7c71035
zos: reset epoll data after fork
Remove all the epoll file descriptors after a fork since they are
no longer valid. The uv__signal_global_once_init function needs to
be run after uv__platform_loop_init so that the epoll pthread_atfork
handlers get run first.

PR-URL: https://github.com/libuv/libuv/pull/1496
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-10-06 14:16:08 +02:00
John Barboza
6a101e78e8 unix: do not close invalid kqueue fd after fork
The kqueue documentation states that the file descriptor is not
inherited by the child process. Hence, do not close it in uv_loop_fork
to avoid tampering with a possibly valid file descriptor already opened
by the child process.

PR-URL: https://github.com/libuv/libuv/pull/1583
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2017-10-05 22:35:57 +02:00
Joran Dirk Greef
5b0e1d75a2 unix: fall back to fsync() if F_FULLFSYNC fails
F_FULLFSYNC may fail on non-Apple block devices.

Fixes: https://github.com/libuv/libuv/issues/1579
PR-URL: https://github.com/libuv/libuv/pull/1580
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-10-05 22:31:09 +02:00
Wade Brainerd
1d9c13f1f7 win, fs: fix non-symlink reparse points
Fixes uv_fs_stat and uv_fs_lstat returning EINVAL when invoked on a
non-symlink reparse point.

1. Only tries to read symlinks when invoked via lstat (do_lstat == 1).

Rationale is that only lstat can set S_IFLNK because when a file is
tested by stat, symlinks are resolved by the OS and the returned file
must be real. Note that broken symlinks fail at CreateFile.

FILE_ATTRIBUTE_REPARSE_POINT is used by filesystem drivers for purposes
besides symlinks, and uv_fs_stat fails when invoked on these files
because fs__readlink_handle returns ERROR_SYMLINK_NOT_SUPPORTED. By
ignoring the attribute in uv_fs_stat, these files are now handled
correctly.

2. Modifies the logic added to fs__stat_handle to fix #995 as follows:

A failed fs__readlink_handle on a file with a reparse point indicates
that the file is not a symlink. The fix for #995 added code to fall
through and behave as with a normal file in this case. However, this is
not correct because lstat had opened the file with
FILE_FLAG_OPEN_REPARSE_POINT, preventing the filesystem from acting
based on the reparse point contents.

The fix makes fs__stat_handle fail back to the higher level
fs__stat_impl, which sets do_lstat to 0 and re-opens the file without
FILE_FLAG_OPEN_REPARSE_POINT, allowing normal filesystem processing to
take place.

This is also a slightly cleaner solution as symlink fallback is only
handled in one place (fs__stat_impl) instead of two (fs__stat_impl and
fs__stat_handle).

Note that the error tested in the fix for #995,
ERROR_NOT_A_REPARSE_POINT, is not actually returned by Windows in the
case of a non-symlink reparse point. I attempted to reproduce the error
by repeating the test steps in the issue but failed. However, the the
fix logic is preserved out of caution.

3. Adds tests to fs-test.c for the above two changes.

Thorough testing requires some non-trivial setup - like an OSX computer
on the LAN or a custom filesystem driver - so these tests are left
commented out for manual invocation.

PR-URL: https://github.com/libuv/libuv/pull/1522
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2017-10-03 16:36:32 +02:00
Joran Dirk Greef
4b666bd2d8 unix,win: add fs open flags, map O_DIRECT|O_DSYNC
Define stable cross-platform file open constants so that users can
pass `UV_FS_O_RDWR` rather than `_O_RDWR` (win) or `O_RDWR` (unix).

Map `UV_FS_O_DIRECT`, `UV_FS_O_DSYNC` and `UV_FS_O_SYNC` to
`FILE_FLAG_NO_BUFFERING` and `FILE_FLAG_WRITE_THROUGH` (win).

Fixes: https://github.com/libuv/libuv/issues/1550
PR-URL: https://github.com/libuv/libuv/pull/1567
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2017-10-03 12:49:54 +02:00
Joran Dirk Greef
5a2b5e84d0 win: change st_blksize from 2048 to 4096
`fs__stat_handle()` used to set st_blksize to `2048` regardless of the
underlying physical sector size of the disk.

`4096` is a better constant to avoid read-modify-write behavior on
advanced format drives.

Fixes: https://github.com/libuv/libuv/issues/1563
PR-URL: https://github.com/libuv/libuv/pull/1566
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2017-10-03 10:45:42 +02:00
Kamil Rytarowski
8a9585232e
unix: retry on ENOBUFS in sendmsg(2)
libuv retries when sendmsg(2) fails with EAGAIN or
EWOULDBLOCK. This commit adds similar functionality for
ENOBUFS.

PR-URL: https://github.com/libuv/libuv/pull/1573
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-10-02 15:51:39 -04:00
Ben Noordhuis
0fcf2d1441 fsevents: watch files with fsevents on macos 10.7+
Adopted from an earlier pull request by Evan Lucas.  Avoids opening a
file descriptor per watched file.

Fixes: https://github.com/libuv/libuv/issues/387
PR-URL: https://github.com/libuv/libuv/pull/1572
Refs: https://github.com/libuv/libuv/pull/641
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-10-02 20:49:41 +02:00
Kamil Rytarowski
001a4a11f6
netbsd: do not exclude IPv6 functionality
On NetBSD, do not exclude PF_INET6 in uv__ifaddr_exclude().

PR-URL: https://github.com/libuv/libuv/pull/1576
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2017-10-02 10:15:39 -04:00
Scott Parker
ec96b55438
unix,win: add uv_mutex_init_recursive()
Support the creation of recursive mutexes on Unix. A matching
API is added on Windows, however mutexes on Windows are always
recursive.

Refs: https://github.com/libuv/libuv/issues/1022
PR-URL: https://github.com/libuv/libuv/pull/1555
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-10-02 10:01:09 -04:00
Kamil Rytarowski
60bf1dfb51
netbsd: use uv__cloexec and uv__nonblock
This commit causes NetBSD, like other BSDs, to reuse
uv__cloexec_ioctl and uv__nonblock_ioctl. This fixes
poll_nested_kqueue.

PR-URL: https://github.com/libuv/libuv/pull/1575
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2017-10-02 09:27:38 -04:00
Sakthipriyan Vairamani (thefourtheye)
8ea2ee4e26
unix: remove unused variables
PR-URL: https://github.com/libuv/libuv/pull/1578
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-10-02 08:52:16 -04:00
Carlo Marcelo Arenas Belón
e9d2b5824f
win: remove unused variables
This commit removes unused variables left over from
6ad1e81547.

Refs: https://github.com/libuv/libuv/pull/1408
PR-URL: https://github.com/libuv/libuv/pull/1571
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-10-02 08:46:56 -04:00
Carlo Marcelo Arenas Belón
939a8f1a5b
windows: fix compilation warnings
Refs: https://github.com/libuv/libuv/pull/1530
PR-URL: https://github.com/libuv/libuv/pull/1542
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-09-29 09:06:35 -04:00
John Barboza
8d3645a19b zos: fix readlink for mounts with system variables
On z/OS, fs mounts can have variables starting with '$'. The problem is
that following symlinks that contain these variables can lead to a loop
because readlink($SYSVAR) will return $SYSVAR.  To work around this, we
must resolve the $SYSVAR to an actual path using realpath.

More information about z/OS symlink resolution is available here:

https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/
com.ibm.zos.v2r1.bpxb100/sym.htm

PR-URL: https://github.com/libuv/libuv/pull/1472
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-09-27 22:07:26 +02:00
Kamil Rytarowski
3877a90e69 netbsd: implement uv__tty_is_slave()
NetBSD as an extension returns with ptsname(3) and ptsname_r(3) the
slave device name for both descriptors, the master one and slave one.

Workaround this problem and verify the device major and compare it with
the pts driver. Major numbers for the master and the slave TTY are
machine-dependent. On amd64 they are respectively 6 (ptc) and 5 (pts).

PR-URL: https://github.com/libuv/libuv/pull/1533
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-09-26 19:49:40 +02:00
Zheng, Lei
11a7aa4a09 android: fix getifaddrs()
The most critical bug is using IFLA_RTA instead of IFA_RTA on address
message. This causes android to not return any ipv6 address.

PR-URL: https://github.com/libuv/libuv/pull/1561
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-09-26 19:39:32 +02:00
John Barboza
24334e0739 zos: lock protect global epoll list in epoll_ctl
This will eliminate a race condition that occurs between
epoll_close_fd, epoll_ctl and epoll_create in the
signal_multiple_loops test.

PR-URL: https://github.com/libuv/libuv/pull/1560
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-09-26 15:33:01 +02:00
cjihrig
b21c1f900c
win: let UV_PROCESS_WINDOWS_HIDE hide consoles
The existing UV_PROCESS_WINDOWS_HIDE flag only applies to
executables linked to the WINDOWS subsystem. This allows
CONSOLE subsystem applications to pop up a console
window. This commit sets the CREATE_NO_WINDOW process
flag when UV_PROCESS_WINDOWS_HIDE to prevent this behavior.

Refs: https://github.com/nodejs/node/pull/15380
Refs: https://github.com/joyent/libuv/pull/627
Refs: https://github.com/libuv/libuv/issues/965
PR-URL: https://github.com/libuv/libuv/pull/1558
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2017-09-25 19:55:59 -04:00
Kamil Rytarowski
5fa0f0b6e1 netbsd: correct uv_exepath() on NetBSD
Setup proper sysctl(2) arguments in order to retrieve the executable
name.

Use an intermediate buffer beacause if it is too short, the sysctl(2)
call will return error. With this intermediate buffer populate the outer
one.

Note issue with too long file names on NetBSD-8(beta), this is caused by
the current implementation of vnode to path translator in the kernel. It
does not cache longer file names than 31 character ones.

PR-URL: https://github.com/libuv/libuv/pull/1532
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2017-09-25 22:37:36 +02:00
Ben Noordhuis
0afccdb0a4 linux: increase thread stack size with musl libc
musl has tiny default thread stack sizes compared to glibc (80 kB vs.
2048 kB or more) so set an explicit stack size to harmonize between
different libcs.

Fixes: https://github.com/libuv/libuv/issues/1507
PR-URL: https://github.com/libuv/libuv/pull/1526
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2017-09-25 22:22:30 +02:00
Kamil Rytarowski
c0504885ea
unix: add NetBSD support in core.c
NetBSD supports:
 - O_CLOEXEC
 - accept4(2) like API with paccept(2)
   NetBSD 8.0 will get compat accept4(2)
 - SOCK_NONBLOCK
 - SOCK_CLOEXEC
 - dup3(2)

PR-URL: https://github.com/libuv/libuv/pull/1534
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-09-23 20:40:01 -04:00
Nick Logan
b0653625e2
unix: truncate destination in uv_fs_copyfile()
This commit adds the O_TRUNC flag to the destination file in
the sendfile() fallback. This allows smaller source files to
be properly copied into larger existing destination files.

Refs: https://github.com/libuv/libuv/pull/1551
PR-URL: https://github.com/libuv/libuv/pull/1552
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-09-20 09:19:44 -04:00
cjihrig
a41f8b52e1
unix: support copying empty files
Initialize the error variable in uv_fs_copyfile() to zero. If
the source file being copied has no data in it, then it's
possible to make it to the exit without ever setting error.
In this situation, the function's behavior is unpredictable.

Refs: https://github.com/libuv/libuv/pull/1551
PR-URL: https://github.com/libuv/libuv/pull/1552
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-09-20 09:18:27 -04:00
cjihrig
eaf25ae3eb
unix: use fchmod() in uv_fs_copyfile()
This commit introduces fchmod() in uv_fs_copyfile() to set the
mode of the destination file.

Refs: https://github.com/nodejs/node/issues/15394
PR-URL: https://github.com/libuv/libuv/pull/1547
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2017-09-14 19:15:55 -04:00
Bartosz Sosnowski
6ad1e81547 win,tty: improve SIGWINCH support
Add SetWinEventHook for EVENT_CONSOLE_LAYOUT for better detection of
console resize events.

Ref: https://github.com/nodejs/node/issues/13197
PR-URL: https://github.com/libuv/libuv/pull/1408
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2017-09-14 10:25:57 +02:00
tux.uudiin
832ab902cf
win: fix buffer size in uv__getpwuid_r()
PR-URL: https://github.com/libuv/libuv/pull/1467
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2017-09-07 10:36:20 -04:00
Kamil Rytarowski
0b41b0ad39
unix: limit uv__has_forked_with_cfrunloop to macOS
The uv__has_forked_with_cfrunloop local variable is unused on
BSDs and causes compilation warnings. Observed on NetBSD/amd64
8.99.2 with GCC 5.4.0.

PR-URL: https://github.com/libuv/libuv/pull/1529
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-09-07 10:14:22 -04:00
Andreas Hauptmann
dff7ebe4f0
unix: handle partial sends in uv_fs_copyfile()
uv_fs_sendfile() is used as the fallback for uv_fs_copyfile().
However, sendfile() does not necessarily send all of the bytes
in one call. This commit adds a loop to ensure all data is
sent.

Fixes: https://github.com/libuv/libuv/issues/1517
PR-URL: https://github.com/libuv/libuv/pull/1494
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-09-05 09:52:59 -04:00
cjihrig
9a4468f47a
windows: add POST macro to fs functions
This commit adds a POST macro to the Windows fs functions,
similar to the one used on Unix platforms.

PR-URL: https://github.com/libuv/libuv/pull/1509
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2017-09-02 19:04:02 -04:00