Commit Graph

2581 Commits

Author SHA1 Message Date
Saúl Ibarra Corretgé
15af49a7a0 unix, windows: always update loop time
Fixes #846
2013-12-10 09:13:34 +01:00
Saúl Ibarra Corretgé
69d2b69647 build: check if pkg-config is installed
Also, don't check for a specific pkg-config version, since libuv doesn't
use pkg-config itself
2013-12-09 09:03:24 +01:00
Joshua Neuheisel
f44f8124e0 build: hide dtrace rules unless needed
When using configure, there are situations where libuv will attempt
to build uv-dtrace.h, even if it is configured with --disable-dtrace.
For example, if libuv is first configured with dtrace enabled, then
built, the .deps files will contain references to include/uv-dtrace.h.
After a make clean and configure --disable-dtrace, the build will still
attempt to create include/uv-dtrace.h and fail. make will see the
dependency reference (which survives the make clean), use the rule
(which is always added to the Makefile), and fail since DTRACE is not
defined.

This commit protects the rules to make uv-dtrace.h with the proper
conditionals to ensure the rules are not written if --disable-dtrace
is chosen.

Fix #963.
2013-12-09 11:25:55 +04:00
Andrej Manduch
6c063317b7 build: add support for pkg-config 2013-12-07 00:49:25 +01:00
Fedor Indutny
646de34f5e unix: fix various memory leaks and undef behavior
Kindly suggested by `cppcheck`.
2013-12-07 02:29:43 +04:00
Maciej Małecki
8094ac2129 doc: document how to run tests 2013-12-05 14:56:53 +04:00
Tenor Biel
2e58ea8fd5 doc: fixed typo in readme
The link to nodejs.org in README.md was broken.
2013-11-30 20:21:39 -08:00
Bert Belder
39db22594d doc: add guidelines for contributing 2013-12-01 03:23:18 +01:00
Bert Belder
f6c1a270ed Merge branch 'v0.10' 2013-11-29 21:42:18 -08:00
Bert Belder
44ecaa7c98 windows/timer: fix uv_hrtime discontinuity
Large performance counter frequency values would cause overflows, even
when 64-bit integers were used to do the multiplication with NANOSEC.
Fix this by using floating point math instead.

Fixes #850
2013-11-29 21:38:53 -08:00
huxingyi
da32344730 fs-event: fix invalid memory access
file_info->FileName is not null terminated.
2013-11-29 20:57:35 -08:00
isaacs
5812e19bf6 Merge branch 'v0.10' 2013-11-29 16:25:58 -08:00
Alex Gaynor
47d98b64c4 doc: Removed use of gendered pronouns 2013-11-29 16:25:01 -08:00
Ben Noordhuis
9342ef7155 Merge remote-tracking branch 'origin/v0.10'
Conflicts:
	src/unix/udp.c
2013-11-27 17:35:57 +01:00
Ben Noordhuis
7bb7371fc5 build: make ./gyp_uv.py -f eclipse work
The eclipse backend (like the ninja backend) does not support the
--generator_output switch.
2013-11-27 17:28:03 +01:00
Fedor Indutny
bf5038df40 fsevents: fix subfolder check
First of all, a bit of explanation of what happens there:

1. FSEvents emits absolute paths to changed files or directories
2. We cut off the first part of such paths, which is equal to handle's
   real path ('/dir/subdir/subsubdir`, without trailing slash)
3. Then, if we are running in non-recursive mode, we discard paths that
   have slashes ('/') as a non-first character in them
2013-11-26 13:24:57 +04:00
Ben Noordhuis
74457d08ba linux: fix up SO_REUSEPORT back-port
Commit 3d2c820 back-ports a patch from the master branch that disables
the use of SO_REUSEPORT on Linux for reasons mentioned in the commit
log.

Unfortunately, the back-port was incomplete; another setsockopt() call
site in src/unix/udp.c was overlooked.  This commit rectifies that.

Hat tip to Luca Bruno for helping troubleshoot the issue.
2013-11-25 16:18:01 +01:00
Marc Schlaich
c3e05bafa5 gitignore: ignore *.pyc files
The gyp build on Windows produces a *.pyc file as of commit 991409e.
2013-11-25 16:27:28 +01:00
Ben Noordhuis
93cc7e5ce1 Merge remote-tracking branch 'origin/v0.10'
Conflicts:
	build.mk
	test/test-emfile.c
	test/test-list.h
2013-11-25 13:00:57 +01:00
Ben Noordhuis
a43537eead test: back-port EMFILE test from master branch
Back-port the test from commit 27795cf from the master branch ("unix:
fix accept() EMFILE error handling").
2013-11-25 12:58:39 +01:00
Ben Noordhuis
27795cfc0f unix: fix accept() EMFILE error handling
Fix a bug that was introduced in commit 3ee4d3f ("unix, windows:
return error codes directly") and add a regression test for good
measure.

Hat tip to Fedor for pointing out the issue.

Fixes #1007.
2013-11-25 01:54:47 +01:00
Steven Kabbes
dbe9905799 libuv: add more getaddrinfo errors 2013-11-25 00:53:07 +01:00
ci-innoq
c438e739a8 fsevents: remove kFSEventStreamCreateFlagNoDefer polyfill
The kFSEventStreamCreateFlagNoDefer flag is already
defined in CarbonCore/FSEvents.h since OS X 10.5.

Fixes #1000.
2013-11-23 12:20:30 +04:00
Timothy J Fontaine
3a01e68385 Now working on v0.11.16 2013-11-20 08:22:28 -08:00
Timothy J Fontaine
bfe645ed7e 2013.11.21, Version 0.11.15 (Unstable)
Changes since version 0.11.14:

* fsevents: report errors to user (Fedor Indutny)

* include: UV_FS_EVENT_RECURSIVE is a flag (Fedor Indutny)

* linux: use CLOCK_MONOTONIC_COARSE if available (Ben Noordhuis)

* build: make systemtap probes work with gyp build (Ben Noordhuis)

* unix: update events from pevents between polls (Fedor Indutny)

* fsevents: support japaneese characters in path (Chris Bank)

* linux: don't turn on SO_REUSEPORT socket option (Ben Noordhuis)

* queue: strengthen type checks (Ben Noordhuis)

* include: remove uv_strlcat() and uv_strlcpy() (Ben Noordhuis)

* build: fix windows smp build with gyp (Geert Jansen)

* unix: return exec errors from uv_spawn, not async (Alex Crichton)

* fsevents: use native character encoding file paths (Ben Noordhuis)

* linux: handle EPOLLHUP without EPOLLIN/EPOLLOUT (Ben Noordhuis)

* windows: use _snwprintf(), not swprintf() (Ben Noordhuis)

* fsevents: use FlagNoDefer for FSEventStreamCreate (Fedor Indutny)

* unix: fix reopened fd bug (Fedor Indutny)

* core: fix fake watcher list and count preservation (Fedor Indutny)

* unix: set close-on-exec flag on received fds (Ben Noordhuis)

* netbsd, openbsd: enable futimes() wrapper (Ben Noordhuis)

* unix: nicer error message when kqueue() fails (Ben Noordhuis)

* samples: add socks5 proxy sample application (Ben Noordhuis)
2013-11-20 08:22:25 -08:00
Ben Noordhuis
bde41b255b samples: add socks5 proxy sample application 2013-11-19 13:20:31 +01:00
Ben Noordhuis
ab37249975 unix: nicer error message when kqueue() fails
Print the error message rather than just the errno.  The fact that the
errno is 24 is only informative to people that have their operating
system's error codes memorized.
2013-11-18 21:00:14 +01:00
Ben Noordhuis
f38869898d netbsd, openbsd: enable futimes() wrapper
OpenBSD and NetBSD have working futimes() implementations.  This commit
makes uv_fs_futime() work on those platforms.
2013-11-16 23:01:14 +01:00
Ben Noordhuis
0c05532e13 test: don't connect to 0.0.0.0
OpenBSD won't let you do that, the connect() system call fails with
an EINVAL error.  Connect to 127.0.0.1 instead.
2013-11-16 21:58:03 +01:00
Ben Noordhuis
e9f75fb146 unix: set close-on-exec flag on received fds
Set the close-on-exec flag on file descriptors that we've received with
recvmsg() so we don't leak them when calling fork() afterwards.

On Linux, we use the MSG_CMSG_CLOEXEC flag when supported (2.6.23 and
up.)

On older Linux versions and other platforms, we walk the received file
descriptors and set the close-on-exec flag for each fd manually.  That
won't entirely avoid race conditions when other threads call fork() or
clone() but at least we're less likely to leak file descriptors now.
2013-11-15 23:13:06 +01:00
Fedor Indutny
86b5c1ef1c test: test fsevents error reporting
Create a lot of `FSEventStream`s to make `FSEventStreamStart()` fail.
Fetch the error code and verify that it is correct.
2013-11-13 18:18:56 +04:00
Ben Noordhuis
c2c92fa65d build: add test-tcp-close-accept.c to test deps
Add test/test-tcp-close-accept.c to the dependency list of the
`make check` target of the autotools build.
2013-11-13 14:00:55 +01:00
Ben Noordhuis
17711b9053 Merge remote-tracking branch 'origin/v0.10'
Conflicts:
	AUTHORS
	ChangeLog
	src/unix/darwin.c
	src/version.c
2013-11-13 13:52:53 +01:00
Ben Noordhuis
026241ca67 unix: unbreak bsd build after bbccafb
Unbreak the build on the BSDs after commit bbccafb.  Move the new
uv__platform_invalidate_fd() function from src/unix/darwin.c to
src/unix/kqueue.c.
2013-11-13 12:20:09 +01:00
Timothy J Fontaine
1578a5a371 Now working on v0.10.20 2013-11-12 10:54:29 -08:00
Timothy J Fontaine
33959f7524 2013.11.13, Version 0.10.19 (Stable)
Changes since version 0.10.18:

* darwin: avoid calling GetCurrentProcess (Fedor Indutny)

* unix: update events from pevents between polls (Fedor Indutny)

* fsevents: support japaneese characters in path (Chris Bank)

* linux: don't turn on SO_REUSEPORT socket option (Ben Noordhuis)

* build: fix windows smp build with gyp (Geert Jansen)

* linux: handle EPOLLHUP without EPOLLIN/EPOLLOUT (Ben Noordhuis)

* unix: fix reopened fd bug (Fedor Indutny)

* core: fix fake watcher list and count preservation (Fedor Indutny)
2013-11-12 10:54:25 -08:00
Fedor Indutny
6149b66ccb Merge branch 'v0.10'
Conflicts:
	build.mk
	src/unix/core.c
	src/unix/darwin.c
2013-11-12 15:30:54 +04:00
Fedor Indutny
f50ccd5238 core: fix fake watcher list and count preservation
Fake watcher list and count should be preserved only if
`loop->watchers` was already allocated.
2013-11-12 15:24:33 +04:00
Fedor Indutny
bbccafbe70 unix: fix reopened fd bug
When fd is closed and new one (with the same number) is opened inside
kqueue/epoll/port loop's callback - stale events might invoke callbacks
on wrong watchers.

Check if watcher was changed after invocation and invalidate all events
with the same fd.

fix #826
2013-11-12 15:02:59 +04:00
Fedor Indutny
0f5c28b684 fsevents: use FlagNoDefer for FSEventStreamCreate
Otherwise `FSEventStreamCreate()` will coalesce events, even if they're
happening in the interval, bigger than supplied `latency`. In other
words, if this flag is not set events will happen in separate callback
only if there was a delay bigger than `latency` between two consecutive
events.
2013-11-10 13:05:27 +04:00
Ben Noordhuis
c6ecf97aaf windows: use _snwprintf(), not swprintf()
Drop the _CRT_NON_CONFORMING_SWPRINTFS hack and just use _snwprintf().

It's a long and complicated story but the gist of it is that the MS CRT
had a swprintf() function before ISO C did, with a different function
prototype to boot: the ISO C one takes a |size| argument, the MS one
does not.

The function prototype that's exported by mingw and mingw-w64 depends
on the mingw version and the _CRT_NON_CONFORMING_SWPRINTFS define.
If they don't match up, you get the wrong prototype and things will
crash at run-time.

Reduce the phase space by sidestepping the whole issue: drop swprintf()
altogether and use _snwprintf() from now on.

Fixes #990.
2013-11-08 12:39:59 +01:00
Ben Noordhuis
0c76cdb98f linux: handle EPOLLHUP without EPOLLIN/EPOLLOUT
Work around an epoll quirk where it sometimes reports just the EPOLLERR
or EPOLLHUP event.  In order to force the event loop to move forward,
we merge in the read/write events that the watcher is interested in;
uv__read() and uv__write() will then deal with the error or hangup in
the usual fashion.

Fixes #982.

This is a back-port of commit 24bfef2 from the master branch.
2013-11-08 05:38:55 +01:00
Ben Noordhuis
24bfef2ef4 linux: handle EPOLLHUP without EPOLLIN/EPOLLOUT
Work around an epoll quirk where it sometimes reports just the EPOLLERR
or EPOLLHUP event.  In order to force the event loop to move forward,
we merge in the read/write events that the watcher is interested in;
uv__read() and uv__write() will then deal with the error or hangup in
the usual fashion.

Fixes #982.
2013-11-08 05:16:55 +01:00
Ben Noordhuis
fd723666af build: add test/test-watcher-cross-stop.c to list
Overlooked in the last v0.10 -> master merge.
2013-11-08 04:16:00 +01:00
Ben Noordhuis
b1b931de4e fsevents: use native character encoding file paths
Create file paths with CFStringCreateWithFileSystemRepresentation(),
not CFStringCreateWithCString().

Reapplies 3780e12 ("fsevents: support japaneese characters in path")
from the v0.10 branch.  Was dropped in the last v0.10 -> master merge
for failing to apply.
2013-11-08 14:03:57 +01:00
Ben Noordhuis
2bb3326c48 Merge remote-tracking branch 'origin/v0.10'
Drops commit 3780e12 ("fsevents: support japaneese characters in path")
for being quite inapplicable to the master branch.  Will be reworked
and applied in a follow-up commit.

Conflicts:
	README.md
	build.mk
	src/unix/fsevents.c
	src/unix/udp.c
2013-11-08 03:44:31 +01:00
Alex Crichton
f764bff699 unix: return exec errors from uv_spawn, not async
If spawning a process fails due to an exec() failure (but it succeeded
in forking), then this should be considered a spawn failure instead of
an asynchronous termination of the process. This allows to check for
common exec() failure conditions such as a bad path quickly instead of
having to rely on keeping track of the async callback.

Additionally, the meaning of the two fields returned in the callback are
now exactly what they advertise to be. The process exit argument is not
one of two values depending on what happened to the child.

Fixes #978.
2013-11-07 22:10:38 +01:00
Geert Jansen
991409e461 build: fix windows smp build with gyp
Gyp will try a parallel build if it detect the system has >1 processor.
This functionality depends on the Python "multiprocessing" package. The
multiprocessing package on Windows requires that the top-level module is
importable as a module, see:

  http://docs.python.org/2/library/multiprocessing.html#windows

This fixes issue #984.

This is a back-port of commit 2445467 from the master branch.
2013-11-05 14:32:45 +01:00
Geert Jansen
2445467810 build: fix windows smp build with gyp
Gyp will try a parallel build if it detect the system has >1 processor.
This functionality depends on the Python "multiprocessing" package. The
multiprocessing package on Windows requires that the top-level module is
importable as a module, see:

  http://docs.python.org/2/library/multiprocessing.html#windows

This fixes issue #984.
2013-11-05 14:28:10 +01:00
Ben Noordhuis
7f44933c43 include: remove uv_strlcat() and uv_strlcpy()
It was pointed out that they don't quite work like their BSD namesakes
and they arguably shouldn't have been part of the API anyway.

Fixes #983.
2013-11-03 03:50:23 +01:00