Commit Graph

681 Commits

Author SHA1 Message Date
Caleb James DeLisle
fe8322d27c windows: fix mingw32/debug build
Debug build failed on mingw32 because CRT assertion disable code was stubbed out.
Replace __declspec(thread) with UV_THREAD_LOCAL which is defined as __thread on GCC.
2014-06-27 08:21:27 +02:00
Andrius Bentkus
36b38cbdba style: remove trailing whitespace
Signed-off-by: Fedor Indutny <fedor@indutny.com>
2014-06-24 20:18:10 +04:00
Peter Atashian
68cd6d6a6f windows: add tty unicode support for input
Switches from using ReadConsoleA to ReadConsoleW.
Uses an auxiliary buffer to store the temporary utf-16 string.

Signed-off-by: Peter Atashian <retep998@gmail.com>
Signed-off-by: Saúl Ibarra Corretgé <saghul@gmail.com>
2014-06-19 23:04:12 +02:00
Saúl Ibarra Corretgé
a098ac66dd unix, windows: return system error on EAI_SYSTEM 2014-06-16 10:09:45 +02:00
Ben Noordhuis
91985d48f6 unix, windows: make uv_barrier_wait() return bool
Make uv_barrier_wait() return a boolean value indicating whether this
thread was the "serializer".

From `man pthread_barrier_wait`:

    Upon successful completion, the pthread_barrier_wait() function
    shall return PTHREAD_BARRIER_SERIAL_THREAD for a single (arbitrary)
    thread synchronized at the barrier and zero for each of the other
    threads.

Exposing that information from libuv is useful because it can make
cleanup significantly easier:

    if (uv_barrier_wait(&barrier) > 0)
      uv_barrier_destroy(&barrier);

Signed-off-by: Fedor Indutny <fedor@indutny.com>
2014-06-07 07:57:08 -07:00
Saúl Ibarra Corretgé
eee4776549 windows: fix handling closed socket while poll handle is closing
fixes #1278
2014-05-30 19:19:36 +02:00
HungMingWu
6d56e6e132 windows: remove redundant code in uv_tcp_write
The overlapped structure is reset twice, it is non necessary.

Signed-off-by: Fedor Indutny <fedor@indutny.com>
2014-05-24 19:08:27 +04:00
Rasmus Christian Pedersen
70c42563c1 unix, windows: getnameinfo implementation
Closes #852
2014-05-20 17:33:52 +02:00
Saúl Ibarra Corretgé
1579788c50 unix, windows: avoid error in uv_fs_event_stop
For consistency with other handle types, if stop is called while the
handle wasn't started yet, it's a no-op.
2014-05-13 10:05:39 +02:00
Rasmus Christian Pedersen
ecaede660c unix, windows: uv_dlerror const argument 2014-05-13 00:00:54 +02:00
Rasmus Christian Pedersen
f629075530 win: open_named_pipe const argument 2014-05-13 00:00:54 +02:00
Rasmus Christian Pedersen
687322432d win: minor coding style cleanup 2014-05-13 00:00:54 +02:00
Ryan Cole
907b55e4bf process: adjust quote_cmd_arg for empty arguments
adjust quote_cmd_arg so that empty command line
arguments are double quoted instead of skipped
2014-05-12 23:55:58 +02:00
Saúl Ibarra Corretgé
386d2141e4 unix, windows: be consistent when binding implictly in UDP
Only these functions will trigger an implicit binding of a UDP handle:
- uv_udp_send
- uv_udp_recv_start
- uv_udp_set_membership

All other functions will return UV_EBADF in case the socket was not
bound.

Note: currently the socket is created and bound at the same time. This
may change in the future.
2014-05-08 15:12:09 +02:00
JD Ballard
e56717ae98 windows: add invert ANSI (7 / 27) emulation 2014-05-03 09:13:28 -03:00
JD Ballard
21b1b87d12 windows: add VT100 codes ?25l and ?25h 2014-05-02 09:27:33 -03:00
Stephen von Takach
fc5f11bf9f windows: fix build error
Previously using Windows DevKit 8.1
`tcp.c(250): error C2275: 'SOCKET' : illegal use of this type as an
expression`
2014-04-23 17:49:52 +10:00
Saúl Ibarra Corretgé
9b4f2b84f1 unix, windows: validate flags on uv_udp|tcp_bind
fixes #1247
2014-04-22 22:57:01 +02:00
Chernyshev Viacheslav
886e2bcd55 unix, windows: pass const handle ptr to uv_tcp_get*name
uv_tcp_getsockname and uv_tcp_getpeername do not modify passed handle
pointer, so there is no need to keep this parameter non-const.
2014-04-18 12:07:38 +02:00
Fedor Indutny
2e82c3bd37 Merge branch 'v0.10'
Conflicts:
	src/win/signal.c
	src/win/util.c
2014-04-14 20:54:34 +04:00
Fedor Indutny
ffb49220cf win: always leave crit section in get_proc_title
fix #1235
2014-04-14 20:49:15 +04:00
Saúl Ibarra Corretgé
b9d5396a40 windows: fix console signal handler refcount
Backport of 0c726e7 from master
2014-04-12 10:09:40 +02:00
李港平
0c726e76a0 windows: fix console signal handler refcount 2014-04-10 17:09:45 +02:00
Alex Crichton
621c4a3929 windows: Fix an infinite loop in uv_spawn
The PATH-parsing code for windows erroneously contained an infinite
loop when the PATH started with a leading semicolon. Each iteration of
the loop usually bumped over the separator, but if the first character
was a semicolon then it would never skip it, causing the infinite
loop.

Closes #909
2014-04-10 07:29:24 -07:00
Alexis Campailla
ba47e68824 windows: fix opening of read-only stdin pipes
Fix https://github.com/joyent/node/issues/7345

Google Chrome is launching native messaging hosts by invoking cmd.exe
with input/output redirected from/to named pipes. The host ends up
with a read-only handle to the stdin pipe. This is causing
SetNamedPipeHandleState to fail.
2014-04-10 10:01:27 +02:00
Saúl Ibarra Corretgé
7a4c42a054 unix: add UV_HANDLE_IPV6 flag to tcp and udp handles 2014-04-02 01:24:39 +02:00
Saúl Ibarra Corretgé
3558d65d2f unix, windows: do not set SO_REUSEADDR by default on udp
Add UV_UDP_REUSEADDR flag instead, which can be passed to uv_udp_bind.
If the udp handle is unbound when uv_udp_set_memberhsip or
uv_udp_set_multicast_interface is called, the handle will be bound with
UV_UDP_REUSEADDR set.
2014-04-02 01:21:35 +02:00
Maks Naumov
872263314e windows: fix check in uv_tty_endgame() 2014-04-01 10:12:55 +03:00
Saúl Ibarra Corretgé
08327a7cbd unix, windows: add IPv6 support for uv_udp_multicast_interface 2014-03-28 00:39:09 +01:00
Saúl Ibarra Corretgé
7c5ab1a73e unix, windows: add IPv6 support to uv_udp_set_membership
Reworked from initial version by @snoj
2014-03-17 22:11:28 +01:00
Saúl Ibarra Corretgé
db2a9072bc unix, windows: removed unused status parameter
async, timer, prepare, idle and check handles don't need the status
parameter.
2014-03-17 21:42:36 +01:00
Fedor Indutny
4ac8c424ea win: fix buffer leak on error in pipe.c 2014-03-13 00:48:55 +04:00
Fedor Indutny
b597d15779 stream: do not leak alloc_cb buffers on error
Always pass previously allocated (if any) buffer, when calling
`read_cb()` on error.
2014-03-13 00:45:02 +04:00
StarWing
1ec4c23438 windows: fix warnings of MinGW -Wall -O3 2014-03-07 17:21:00 +08:00
David Capello
97fc348716 windows: Remove unused variable from uv__pipe_insert_pending_socket 2014-03-05 20:06:04 -03:00
Raul Martins
f326820f55 windows: fix winsock status codes for address errors
- STATUS_TOO_MANY_ADDRESSES now returns WSAEADDRINUSE
- STATUS_CONFLICTING_ADDRESSES now returns WSAEADDRNOTAVAIL
2014-03-03 21:51:52 +01:00
Fedor Indutny
b05a3ee4d1 pipe: allow queueing pending handles
Introduce `int uv_pipe_pending_count(uv_pipe_t*)` and
`uv_handle_type uv_pipe_pending_type(uv_pipe_t*)`. They should be
used in IPC pipe's read cb to accept incoming handles:

    int count = uv_pipe_pending_count(pipe);
    int i;
    for (i = 0; i < count; i++) {
      uv_handle_type type = uv_pipe_pending_type(pipe);
      /* ... */
      uv_accept(...);
    }
2014-03-04 00:34:29 +04:00
Isaiah Norton
2930d04e5b windows: fall back for volume info query
Wine does not currently support FileFsVolumeInformation:

https://github.com/mirrors/wine/blob/0e42fd97c0/dlls/ntdll/file.c#L2679

So check io_status and fall back to previous behavior if not
implemented.
2014-03-03 19:34:59 +01:00
Saúl Ibarra Corretgé
422d2810b3 unix, windows: make uv_cwd be consistent with uv_exepath
Fixes #446
2014-02-27 09:44:28 +01:00
Saúl Ibarra Corretgé
2611ef43b1 unix, windows: add assertion in uv_loop_delete 2014-02-27 01:05:54 +01:00
Saúl Ibarra Corretgé
b2341e7709 windows: fix typo 2014-02-26 09:25:49 +01:00
Saúl Ibarra Corretgé
b055538d09 unix, windows: clarify what uv_stream_set_blocking does
Also replace the assert with an error on unix.
2014-02-26 00:03:30 +01:00
Saúl Ibarra Corretgé
7ad8f74302 unix, windows: set required size on UV_ENOBUFS
When the supplied buffer is not big enough and UV_ENOBUFS is
returned, hint the user about the required size by setting
the len paramemeter to the required value.

Applies to:
- uv_pipe_getsockname
- uv_fs_event_getpath
- uv_fs_poll_getpath
2014-02-25 11:56:02 +01:00
Saúl Ibarra Corretgé
e5bdef9b59 fsevent: rename filename field to path
Also, it's now considered private.
2014-02-24 21:51:21 +01:00
Saúl Ibarra Corretgé
5ac214c712 unix, windows: add uv_pipe_getsockname 2014-02-23 20:25:20 +01:00
Benjamin Saunders
13dd3502a7 fs: vectored IO API for filesystem read/write
This improves API consistency with uv_read and uv_write and may
improve efficiency for some uses. Vectored IO is emulated when the
requisite system calls are unavailable.
2014-02-23 17:24:05 +01:00
Rasmus Pedersen
616167e149 win: fix C99/C++ comment
This commit converts C++ style comment to C style comment
2014-02-23 17:36:20 +04:00
rcp
0943d3cb33 win: minor error handle fix to uv_pipe_write_impl
This commit ensures a proper win32 error code is returned
from uv_pipe_write_impl in case of failure.
2014-02-22 03:09:20 +04:00
Oleg Efimov
da9a2b1d3d unix, windows: add uv_getrusage() function 2014-02-21 18:50:15 +01:00
Saúl Ibarra Corretgé
787f5fff92 unix, windows: add uv_loop_init and uv_loop_close
These functions supersede uv_loop_new and uv_loop_delete.
uv_loop_init initialized a user allocated loop and uv_loop_close
removes all associated resources a loop uses after it has finished
execution.

uv_loop_new and uv_loop_delete are now deprecated.
2014-02-21 09:56:13 +01:00