12774 Commits

Author SHA1 Message Date
Max Barinov
1c5d4f2453 http: 451 status code "Unavailable For Legal Reasons"
This http code allows us to provide a fair reason when
we can't return some data to the client by legal issues.

IETF https://datatracker.ietf.org/doc/draft-ietf-httpbis-legally-restricted-status/

Fixes: #4376
PR-URL: https://github.com/nodejs/node/pull/4377
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-12-23 17:31:26 -08:00
Adri Van Houdt
2fd3d8aee6 doc: improve grammar in tls docs
Fix: #4246
PR-URL: https://github.com/nodejs/node/pull/4315
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-12-23 17:17:51 -08:00
Jackson Tian
5396baf7c1 buffer: faster case for create Buffer from new Buffer(0)
When create Buffer from a Buffer will copy data
from old to new even though length is zero.

This patch can improve edge case 4x faster.
following is benchmark results.

new: buffers/buffer_zero.js n=1024: 2463.53891
old: buffers/buffer_zero.js n=1024: 618.70801

PR-URL: https://github.com/nodejs/node/pull/4326
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-12-23 17:15:19 -08:00
Jackson Tian
26a82971b2 buffer: refactor create buffer
Use createBuffer to reduce new Uint8Array()
and setPrototypeOf.

PR-URL: https://github.com/nodejs/node/pull/4340
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-12-23 17:12:29 -08:00
James M Snell
67b109a4b4 doc: improvements to buffer.markdown copy
General improvements to buffer.markdown including new examples,
a few fixes to existing examples, consistent formatting and
others

PR-URL: https://github.com/nodejs/node/pull/4370
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-12-23 13:47:54 -08:00
James M Snell
d5863bc0f4 doc: improve addons.markdown copy
General improvements to the documentation in addons.markdown.

PR-URL: https://github.com/nodejs/node/pull/4320
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
2015-12-23 12:19:42 -08:00
Santiago Gimeno
cf503052bf test: fix domain-top-level-error-handler-throw
Check the stderr output in the `close` event as it's not guaranteed to
be fully available when the `exit` event is fired.

PR: #4364
PR-URL: https://github.com/nodejs/node/pull/4364
Reviewed-By: Julien Gilli <jgilli@fastmail.fm>
2015-12-23 10:02:29 -08:00
James M Snell
7fac47c94a 2015-12-23, Version 4.2.4 "Argon" (LTS) Release
Maintenance Update

Notable changes

* Roughly 78% of the commits are documentation and test
  improvements
* domains:
  - Fix handling of uncaught exceptions (Julien Gilli)
    [#3884](https://github.com/nodejs/node/pull/3884)
* deps:
  - Upgrade to npm 2.14.12 (Kat Marchán)
    [#4110](https://github.com/nodejs/node/pull/4110)
  - Backport 819b40a from V8 upstream (Michaël Zasso)
    [#3938](https://github.com/nodejs/node/pull/3938)
  - Updated node LICENSE file with new npm license (Kat Marchán)
    [#4110](https://github.com/nodejs/node/pull/4110)
2015-12-23 09:22:48 -08:00
Brian White
d847a74405 test: use platformTimeout() in more places
Without these changes, the pi1-raspbian-wheezy CI node was timing
out on these tests.

PR-URL: https://github.com/nodejs/node/pull/4387
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-12-22 15:05:11 -05:00
Fedor Indutny
3213e5fe6e https: use servername in agent key
https requests with different SNI values should not be sent over the
same connection, even if the `host` is the same. Server may want to
present different certificate or route the incoming TLS connection
differently, depending on the received servername extension.

Fix: https://github.com/nodejs/node/issues/3940
PR-URL: https://github.com/nodejs/node/pull/4389
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-12-22 13:51:12 -05:00
Mudit Ameta
29c4a2af5c repl: Fixed node repl history edge case.
If the deprecated NODE_REPL_HISTORY_FILE is set to default
node history file path ($HOME/.node_repl_history) and the file
doesn't exist, then node creates the file and then crashes when
it tries to parse that file as JSON thinking that it's an older
JSON formatted history file. This fixes that bug.

This patch also prevents node repl from throwing if the old
history file is empty or if $HOME/.node_repl_history is empty.

Fixes: https://github.com/nodejs/node/issues/4102
PR-URL: https://github.com/nodejs/node/pull/4108
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-12-22 13:29:28 -05:00
Ali Ijaz Sheikh
79dc1d7635 src: remove forwards for v8::GC*logueCallback
These types are no longer used in the file and V8 4.9 no longer defines these
types anymore.

PR-URL: https://github.com/nodejs/node/pull/4381
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
2015-12-22 08:11:41 -08:00
Dave
6e11e22081 http: remove excess calls to removeSocket
socket.destroy() triggers a 'close' event from the socket which triggers
the onClose handler of HTTPAgent which calls self.removeSocket(). So by
calling self.removeSocket() prior to socket.destroy() we end up with two
calls to self.removeSocket().

If there are pending requests, removeSocket ends up creating a new socket.
So if there are pending requests, each time a request completes, we tear
down one socket and create two more. So the total number of sockets grows
exponentially and without regard for any maxSockets settings. This was
noticed in https://github.com/nodejs/node/issues/4050. Let's get rid of
the extra calls to removeSocket so we only call it once per completed
request.

PR-URL: https://github.com/nodejs/node/pull/4172
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-12-21 16:11:57 -05:00
Claudio Rodriguez
63786227cc assert: typed array deepequal performance fix
assert.deepEqual: when actual and expected are typed arrays,
wrap them in a new Buffer each to increase performance
significantly.

PR-URL: https://github.com/nodejs/node/pull/4330
Fixes: https://github.com/nodejs/node/issues/4294
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-12-21 18:04:01 +01:00
Evan Lucas
50125e27b7 repl: use String#repeat instead of Array#join
String#repeat is quite a bit faster than new Array().join().

PR-URL: https://github.com/nodejs/node/pull/3900
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
2015-12-21 10:54:01 -06:00
Jeremiah Senkpiel
14f81a022d 2015-07-09 io.js v1.8.4 Release
Notable changes

* openssl: Upgrade to 1.0.2d, fixes CVE-2015-1793 (Alternate Chains
Certificate Forgery) https://github.com/nodejs/io.js/pull/2141.
2015-12-20 19:14:23 +03:00
Rod Vagg
8e724e6677 2015-07-04 io.js v1.8.3 Release
Maintenance release

Notable Changes:

* v8: Fixed an out-of-band write in utf8 decoder. This is an important
  security update as it can be used to cause a denial of service
  attack.
* openssl: - Upgrade to 1.0.2b and 1.0.2c, introduces DHE
  man-in-the-middle protection (Logjam) and fixes malformed
  ECParameters causing infinite loop (CVE-2015-1788). See the
  security advisory for full details. (Shigeki Ohtsu) #1950 #1958
* build:
  - Added support for compiling with Microsoft Visual C++ 2015
  - Started building and distributing headers-only tarballs along with
    binaries
2015-12-20 19:14:23 +03:00
Rod Vagg
361db7e191 2015-05-17 io.js v1.8.2 Release
Maintenance release

Notable Changes:

* crypto: significantly reduced memory usage for TLS (Fedor Indutny &
  Сковорода Никита Андреевич) #1529
* npm: Upgrade npm to 2.9.0. See the v2.8.4 and v2.9.0 release notes for
  details.
2015-12-20 19:14:23 +03:00
Brian White
18490d3d5a module: always decorate thrown errors
This provides more information when encountering a syntax or similar
error when executing a file with require().

Fixes: https://github.com/nodejs/node/issues/4286
PR-URL: https://github.com/nodejs/node/pull/4287
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-12-19 14:15:38 -05:00
Brian White
4b0b991bf5 test: fix flaky test-net-error-twice
On Windows there can exist some race condition where the
notification of the client's `socket.destroy()` isn't received
before the server writes to the socket. This race condition was
more evident/reproducible on a single core system.

This commit fixes the flakiness by waiting until the server's
connection event handler has been called to destroy the client
socket and perform the server socket write.

Fixes: https://github.com/nodejs/node/issues/4057
PR-URL: https://github.com/nodejs/node/pull/4342
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: João Reis <reis@janeasystems.com>
2015-12-19 14:09:36 -05:00
Fedor Indutny
a2c1799a5b crypto: load PFX chain the same way as regular one
Load the certificate chain from the PFX file the same as we do it for a
regular certificate chain.

Fix: #4127
PR-URL: https://github.com/nodejs/node/pull/4165
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-12-17 20:22:40 -05:00
Trevor Norris
56985ca258 node: improve accessor perf of process.env
Set process.env array entries in JS.

PR-URL: https://github.com/nodejs/node/pull/3780
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-12-17 17:29:31 -07:00
Trevor Norris
36e8a2c63d node: improve performance of hrtime()
process.hrtime() was performing too many operations in C++ that could be
done faster in JS. Move those operations over by creating a length 4
Uint32Array and perform bitwise operations on the seconds so that it was
unnecessary for the native API to do any object creation or set any
fields.

This has improved performance from ~350 ns/op to ~65 ns/op. Light
benchmark included to demonstrate the performance change.

PR-URL: https://github.com/nodejs/node/pull/3780
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-12-17 17:29:16 -07:00
Trevor Norris
946315f7d8 node: improve GetActiveHandles performance
Improve performance of process._getActiveHandles by sending handles in
batches to JS to be set on the passed Array. Add test to check proper
active handles are returned.

Alter implementation of GetActiveRequests to match GetActiveHandles'
implementation.

PR-URL: https://github.com/nodejs/node/pull/3780
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-12-17 17:29:12 -07:00
Trevor Norris
0fde28ce37 fs: use pushValueToArray for readdir(Sync)
Improve performance by pushing directory entries to returned array in
batches of 8 using pushValueToArray() in JS. Add benchmarks to
demonstrate this improvement.

PR-URL: https://github.com/nodejs/node/pull/3780
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-12-17 17:29:06 -07:00
Trevor Norris
d39ace16ba http_parser: use pushValueToArray for headers
For performance add headers to the headers Array by pushing them on from
JS. Benchmark added to demonstrate this case.

PR-URL: https://github.com/nodejs/node/pull/3780
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-12-17 17:28:53 -07:00
Trevor Norris
83524b3c18 node: fix erroneously named function call
The initial implementation of setPropByIndex() set the value of an Array
by index during development. Though the final form of the function
simply pushes passed values to an array as passed by arguments. Thus the
functions have been renamed to pushValueToArray() and
push_values_to_array_function() respectively.

Also add define for maximum number of arguments should be used before
hitting the limit of performance increase.

Fixes: 494227b "node: improve GetActiveRequests performance"
PR-URL: https://github.com/nodejs/node/pull/3780
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-12-17 17:28:24 -07:00
Fedor Indutny
32ac3769f5 http: do not emit upgrade on advertisement
Do not emit `upgrade` if the server is just advertising its protocols
support as per RFC 7230 Section 6.7.

    A server MAY send an Upgrade header field in any other response
    to advertise that it implements support for upgrading to the
    listed protocols, in order of descending preference, when
    appropriate for a future request.

Fix: https://github.com/nodejs/node/issues/4334
PR-URL: https://github.com/nodejs/node/pull/4337
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-12-17 19:25:43 -05:00
Brian White
0b43c08f44 util: pass on additional error() args
This fixes breakage introduced in 94b9948d63 when writing the max
EventEmitter listeners warning to stderr.

PR-URL: https://github.com/nodejs/node/pull/4279
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-12-17 13:03:36 -05:00
Brian White
852313af65 test: try other ipv6 localhost alternatives
PR-URL: https://github.com/nodejs/node/pull/4325
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-12-17 12:52:18 -05:00
Ben Noordhuis
25776f3ea1 debugger: guard against call from non-node context
Fix a segmentation fault when the debug message handler was called from
a context without an associated `node::Environment`.

Fixes: https://github.com/nodejs/node/issues/4261
Fixes: https://github.com/nodejs/node/issues/4322
PR-URL: https://github.com/nodejs/node/pull/4328
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-12-17 08:42:10 -08:00
Bo Borgerson
88de88b5a6 http: Remove an unnecessary assignment
This just removes an assignment to `ret` of a value that's not used before
it's overwritten.  Immediately following the assigment is an `if/else` in
which both branches assign to `ret` without using it.

PR-URL: https://github.com/nodejs/node/pull/4323
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-12-17 08:35:59 -08:00
James M Snell
9b21119e17 doc: fix, modernize examples in docs
* Use single quotes consistently
* Modernize examples to use template strings and arrow funcs
* Fix a few typos
* Example edits for consistency

PR-URL: https://github.com/nodejs/node/pull/4282
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-12-17 08:07:29 -08:00
chrisjohn404
f2bddc14f6 doc: Typo in buffer.markdown referencing buf.write()
The buffer's write function is documented below the
buf.toString function and all of the docs reference
"buf" instead of "buffer".

PR-URL: https://github.com/nodejs/node/pull/4324
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-12-17 07:55:09 -08:00
Nicholas Young
4637168f81 doc: fix link in addons.markdown
Update link from github.com/rvagg to github.com/nodejs

PR-URL: https://github.com/nodejs/node/pull/4331
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-12-17 07:48:33 -08:00
Minwoo Jung
ae5bcf9528 lib: use arrow functions instead of bind
use `arrow functions` instead of `bind(this)` in order to improve
performance through optimizations.

PR-URL: https://github.com/nodejs/node/pull/3622
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
2015-12-17 19:45:57 +09:00
Xotic750
93d6b5fb68 util: use consistent Dates in inspect()
Fix: https://github.com/nodejs/node/issues/4314
PR-URL: https://github.com/nodejs/node/pull/4318
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-12-16 22:15:18 -05:00
cjihrig
e5774c9df0 2015-12-16, Version 5.3.0 (Stable)
Notable changes:

* buffer:
  - Buffer.prototype.includes() has been added to keep parity
    with TypedArrays. (Alexander Martin) #3567.
* domains:
  - Fix handling of uncaught exceptions.
    (Julien Gilli) #3654.
* https:
  - Added support for disabling session caching.
    (Fedor Indutny) #4252.
* repl:
  - Allow third party modules to be imported using
    require(). This corrects a regression from 5.2.0.
    (Ben Noordhuis) #4215.
* deps:
  - Upgrade libuv to 1.8.0.
    (Saúl Ibarra Corretgé) #4276.

PR-URL: https://github.com/nodejs/node/pull/4281

Conflicts:
	src/node_version.h
2015-12-16 14:53:22 -05:00
Jackson Tian
a8854e5b59 doc: document the cache parameter for fs.realpathSync
PR-URL: https://github.com/nodejs/node/pull/4285
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-12-16 08:41:45 -08:00
Ben Noordhuis
2859f9ef92 test: fix debug-port-cluster flakiness
Rewrite the test so that stderr reordering of the child processes won't
confuse the test's expectations.

PR-URL: https://github.com/nodejs/node/pull/4310
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-12-16 15:44:07 +01:00
Jan Schär
9e1b7aa874 doc: document backlog for server.listen() variants
The backlog parameter is supported by all variations of
net.Server.listen(), but wasn't consistently documented. This
commit brings the documentation into a more consistent state.

Refs: https://github.com/nodejs/node/pull/4056
PR-URL: https://github.com/nodejs/node/pull/4025
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
2015-12-16 10:58:51 -05:00
ronkorving
d63cceeb10 tools: add .editorconfig
This helps editors (see http://editorconfig.org/#download) to
apply the right indentation and encoding rules to files by
default.

PR-URL: https://github.com/nodejs/node/pull/2993
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2015-12-16 16:23:32 +01:00
cjihrig
cb0b4a6bc0 test: add test for debugging one line files
This commit adds a regression test for debugging of
single line files.

Refs: https://github.com/nodejs/node/issues/4297
PR-URL: https://github.com/nodejs/node/pull/4298
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
2015-12-16 10:08:43 -05:00
cjihrig
2a60e2ad71 module,src: do not wrap modules with -1 lineOffset
In b799a74709af69daf13901390df9428c4c38adfc and
dfee4e3712ac4673b5fc472a8f77ac65bdc65f87 the module wrapping
mechanism was changed for better error reporting. However,
the changes causes issues with debuggers and profilers. This
commit reverts the wrapping changes.

Fixes: https://github.com/nodejs/node/issues/4297
PR-URL: https://github.com/nodejs/node/pull/4298
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
2015-12-16 10:07:20 -05:00
ronkorving
4b267df93e udp: remove a needless instanceof Buffer check
When a string is passed to udpsock.send, it is automatically
converted to a Buffer. In that case, it is no longer needed
to test whether or not the argument is a Buffer or not.

PR-URL: https://github.com/nodejs/node/pull/4301
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Roman Reiss <me@silverwind.io>
2015-12-16 06:53:03 +01:00
Ben Noordhuis
f176b31e74 src: remove __builtin_bswap16 call
Not supported by apple-gcc and I'm not convinced it's worth adding more
preprocessor hacks when it should be easy as pie for the compiler to
to optimize the byteswap.  If it doesn't, fix the compiler.

Fixes: https://github.com/nodejs/node/issues/4284
PR-URL: https://github.com/nodejs/node/pull/4290
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-12-15 16:37:10 +01:00
Ben Noordhuis
ce2471673f src: remove unused BITS_PER_LONG macro
Remove the unused and broken BITS_PER_LONG macro.  Broken because x64
is the only 64 bits architecture where it produces the right result.

PR-URL: https://github.com/nodejs/node/pull/4290
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-12-15 16:36:38 +01:00
Evan Lucas
0b9c3a30d6 test: add test for tls.parseCertString
It does not currently have any explicit tests to verify the behavior.

PR-URL: https://github.com/nodejs/node/pull/4283
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-12-15 08:09:29 -06:00
Rod Vagg
435d571f22 doc: update AUTHORS list
Update AUTHORS list using tools/update-authors.sh

PR-URL: https://github.com/nodejs/node/pull/4183
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-12-15 17:10:52 +11:00
Nelson Pecora
3b3061365a doc: update irc channels: #node.js and #node-dev
IRC (general questions): irc.freenode.net #node.js
IRC (node core development): irc.freenode.net #node-dev

PR-URL: https://github.com/nodejs/node/pull/2743
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-12-14 19:14:20 -05:00