* stream: Allow strings in Readable.push/unshift (isaacs) * stream: Remove bufferSize option (isaacs) * stream: Increase highWaterMark on large reads (isaacs) * stream: _write: takes an encoding argument (isaacs) * stream: _transform: remove no output() method, provide encoding (isaacs) * stream: Don't require read(0) to emit 'readable' event (isaacs) * node: Add --throw-deprecation (isaacs) * http: fix multiple timeout events (Eugene Girshov) * http: More useful setTimeout API on server (isaacs) * net: use close callback, not process.nextTick (Ben Noordhuis) * net: Provide better error when writing after FIN (isaacs) * dns: Support NAPTR queries (Pavel Lang) * dns: fix ReferenceError in resolve() error path (Xidorn Quan) * child_process: handle ENOENT correctly on Windows (Scott Blomquist) * cluster: Rename destroy() to kill(signal=SIGTERM) (isaacs) * build: define nightly tag external to build system (Timothy J Fontaine) * build: make msi build work when spaces are present in the path (Bert Belder) * build: fix msi build issue with WiX 3.7/3.8 (Raymond Feng) * repl: make compatible with domains (Dave Olszewski) * events: Code cleanup and performance improvements (Trevor Norris)
This adds the following to HTTP: * server.setTimeout(msecs, callback) Sets all new connections to time out after the specified time, at which point it emits 'timeout' on the server, passing the socket as an argument. In this way, timeouts can be handled in one place consistently. * req.setTimeout(), res.setTimeout() Essentially an alias to req/res.socket.setTimeout(), but without having to delve into a "buried" object. Adds a listener on the req/res object, but not on the socket. * server.timeout Number of milliseconds before incoming connections time out. (Default=1000*60*2, as before.) Furthermore, if the user sets up their own timeout listener on either the server, the request, or the response, then the default behavior (destroying the socket) is suppressed. Fix #3460
This will run the benchmarks the number of times specified by NODE_BENCH_RUNS, to attempt to reduce variability. If the number of runs is high enough, it'll also throw out the top and bottom quartiles, since that's where the outliers will be. It's not very fancy statistics-fu, but it's better than nothing. Also, linted this file. It had tabs in it. TABS!
This prevents excessively raising the buffer level in tiny increments in pathological cases.
Don't emit the 'close' event with process.nextTick. Closing a handle is an operation that usually *but not always* completes on the next tick of the event loop, hence using process.nextTick is not reliable. Use a proper handle close callback and emit the 'close' event from inside the callback. Update tests that depend on the intricacies of the old model. Fixes #3459.
Prep work for a follow-up commit that adds support for close callbacks.
There are no unsafe structured exception handlers in object files generated from hand-crafted assembly - because they contain no exception handlers at all.
This commit fixes a bug where the cluster module fails to propagate EADDRINUSE errors. When a worker starts a (net, http) server, it requests the listen socket from its master who then creates and binds the socket. Now, OS X and Windows don't always signal EADDRINUSE from bind() but instead defer the error until a later syscall. libuv mimics this behaviour to provide consistent behaviour across platforms but that means the worker could end up with a socket that is not actually bound to the requested addresss. That's why the worker now checks if the socket is bound, raising EADDRINUSE if that's not the case. Fixes #2721.