isaacs [Wed, 13 Feb 2013 00:30:25 +0000 (16:30 -0800)]
blog: Forgot slug on peer-dependencies article
isaacs [Tue, 12 Feb 2013 20:03:52 +0000 (12:03 -0800)]
blog: Peer Dependencies article
Thanks, @domenic
Ben Noordhuis [Fri, 8 Feb 2013 00:33:29 +0000 (01:33 +0100)]
test: disable simple/test-dgram-send-error
It's not a good citizen, it spams random IP addresses with UDP packets.
Fixes #4730.
isaacs [Thu, 7 Feb 2013 18:35:35 +0000 (10:35 -0800)]
blog: v0.9.9 is unstable, not stable
isaacs [Thu, 7 Feb 2013 18:34:45 +0000 (10:34 -0800)]
blog: v0.9.9
Bert Belder [Thu, 7 Feb 2013 13:39:47 +0000 (14:39 +0100)]
http: protect against response splitting attacks
This patch is a back-port of 3c293ba.
Closes #4696
isaacs [Wed, 6 Feb 2013 17:48:11 +0000 (09:48 -0800)]
blog: v0.8.19 release
isaacs [Wed, 6 Feb 2013 17:46:47 +0000 (09:46 -0800)]
Now working on 0.8.20
isaacs [Wed, 6 Feb 2013 17:44:38 +0000 (09:44 -0800)]
Merge branch 'v0.8.19-release' into v0.8
isaacs [Wed, 6 Feb 2013 16:46:14 +0000 (08:46 -0800)]
2013.02.06, Version 0.8.19 (Stable)
* npm: Upgrade to v1.2.10
* zlib: pass object size hint to V8 (Ben Noordhuis)
* zlib: reduce memory consumption, release early (Ben Noordhuis)
* buffer: slow buffer copy compatibility fix (Trevor Norris)
* zlib: don't assert on malformed dictionary (Ben Noordhuis)
* zlib: don't assert on missing dictionary (Ben Noordhuis)
* windows: better ipv6 support (Bert Belder)
* windows: add error mappings related to unsupported protocols (Bert Belder)
* windows: map ERROR_DIRECTORY to UV_ENOENT (Bert Belder)
isaacs [Wed, 6 Feb 2013 16:39:27 +0000 (08:39 -0800)]
npm: Upgrade to v1.2.10
Ben Noordhuis [Tue, 5 Feb 2013 21:34:49 +0000 (22:34 +0100)]
blog: remove dangling symlink
Fixes #4716.
Ben Noordhuis [Tue, 30 Oct 2012 13:40:50 +0000 (14:40 +0100)]
zlib: pass object size hint to V8
Inform V8 that the zlib context object is tied to a large off-heap buffer.
This makes the GC run more often (in theory) and improves the accuracy of
--trace_external_memory.
Ben Noordhuis [Tue, 30 Oct 2012 00:19:01 +0000 (01:19 +0100)]
zlib: reduce memory consumption, release early
In zlibBuffer(), don't wait for the garbage collector to reclaim the zlib memory
but release it manually. Reduces memory consumption by a factor of 10 or more
with some workloads.
Test case:
function f() {
require('zlib').deflate('xxx', g);
}
function g() {
setTimeout(f, 5);
}
f();
Observe RSS memory usage with and without this commit. After 10,000 iterations,
RSS stabilizes at ~35 MB with this commit. Without, RSS is over 300 MB and keeps
growing.
Cause: whenever the JS object heap hits the high-water mark, the V8 GC sweeps
it clean, then tries to grow it in order to avoid more sweeps in the near
future. Rule of thumb: the bigger the JS heap, the lazier the GC can be.
A side effect of a bigger heap is that objects now live longer. This is harmless
in general but it affects zlib context objects because those are tied to large
buffers that live outside the JS heap, on the order of 16K per context object.
Ergo, don't wait for the GC to reclaim the memory - it may take a long time.
Fixes #4172.
Ben Noordhuis [Tue, 5 Feb 2013 11:47:23 +0000 (12:47 +0100)]
doc: don't suggest to reuse net.Socket objects
Using Socket.prototype.connect() to reconnect an existing Socket object
is not reliable. Users should just create a new Socket object.
See #4698.
isaacs [Sat, 2 Feb 2013 19:14:42 +0000 (11:14 -0800)]
blog: Correct shasums for v0.9.8 release
Bert Belder [Wed, 30 Jan 2013 19:30:10 +0000 (20:30 +0100)]
deps: upgrade libuv to 034ea31
Rick Yakubowski [Sat, 26 Jan 2013 23:07:09 +0000 (18:07 -0500)]
doc: fix typo in cluster module documentation
Fix a small typo in the cluster.settings documentation.
Trevor Norris [Tue, 22 Jan 2013 17:09:12 +0000 (09:09 -0800)]
buffer: slow buffer copy compatibility fix
Fix issue where SlowBuffers couldn't be passed as target to Buffer
copy().
Also included checks to see if Argument parameters are defined before
assigning their values. This offered ~3x's performance gain.
Backport of 16bbecc from master branch. Closes #4633.
isaacs [Fri, 25 Jan 2013 01:23:11 +0000 (17:23 -0800)]
benchmark: Port http.sh from master
Jacob Gable [Wed, 23 Jan 2013 22:38:09 +0000 (16:38 -0600)]
doc: fix typo in crypto Hash.digest() note
Added the word 'has' to the sentence.
Closes #4652.
isaacs [Thu, 24 Jan 2013 18:32:35 +0000 (10:32 -0800)]
blog: Post for v0.9.8
Ben Noordhuis [Tue, 22 Jan 2013 12:53:49 +0000 (13:53 +0100)]
doc: document PYTHON env var in README
Ben Noordhuis [Tue, 22 Jan 2013 12:23:46 +0000 (13:23 +0100)]
zlib: don't assert on malformed dictionary
Handle Z_DATA_ERROR errors from inflateSetDictionary() gracefully.
Fixes the following assertion:
node: ../src/node_zlib.cc:167: static void node::ZCtx::Process
(uv_work_t*): Assertion `ctx->err_ == 0 && "Failed to set
dictionary"' failed.
Aborted (core dumped)
Fixes #4632.
Ben Noordhuis [Tue, 22 Jan 2013 11:58:15 +0000 (12:58 +0100)]
zlib: don't assert on missing dictionary
Handle Z_NEED_DICT errors graciously. Fixes the following assertion:
node: ../src/node_zlib.cc:161: static void node::ZCtx::Process
(uv_work_t*): Assertion`ctx->dictionary_ != __null && "Stream
has no dictionary"' failed.
Aborted (core dumped)
Fixes #4632.
isaacs [Fri, 18 Jan 2013 20:54:22 +0000 (12:54 -0800)]
blog: Post for v0.8.18 release
isaacs [Fri, 18 Jan 2013 20:51:34 +0000 (12:51 -0800)]
Now working on 0.8.19
isaacs [Fri, 18 Jan 2013 20:51:14 +0000 (12:51 -0800)]
Merge branch 'v0.8.18-release' into v0.8
isaacs [Fri, 18 Jan 2013 20:15:41 +0000 (12:15 -0800)]
2013.01.18, Version 0.8.18 (Stable)
* npm: Upgrade to v1.2.2
* dns: make error message match errno (Dan Milon)
* tls: follow RFC6125 more stricly (Fedor Indutny)
* buffer: reject negative SlowBuffer offsets (Ben Noordhuis)
* install: add simplejson fallback (Chris Dent)
* http: fix "Cannot call method 'emit' of null" (Ben Noordhuis)
isaacs [Fri, 18 Jan 2013 20:12:07 +0000 (12:12 -0800)]
npm: Upgrade to v1.2.2
isaacs [Fri, 18 Jan 2013 19:48:21 +0000 (11:48 -0800)]
blog: Post for v0.9.7 release
Dan Milon [Fri, 18 Jan 2013 00:40:48 +0000 (02:40 +0200)]
dns: make error message match errno
Fedor Indutny [Mon, 14 Jan 2013 23:29:46 +0000 (03:29 +0400)]
tls: follow RFC6125 more stricly
* Allow wildcards only in left-most part of hostname identifier.
* Do not match CN if altnames are present
Fedor Indutny [Thu, 17 Jan 2013 23:47:47 +0000 (03:47 +0400)]
Revert "Revert "tls: allow wildcards in common name""
This reverts commit
30e237041d5cd7c39e33a9382c96f109be23337d.
Works properly with b4b750b
Ben Noordhuis [Thu, 17 Jan 2013 15:32:00 +0000 (16:32 +0100)]
Revert "tls: allow wildcards in common name"
This reverts commit
45024e7b7551eca7796e16fe453b2cbaee94b916.
It's making test/simple/test-tls-check-server-identity.js fail:
AssertionError: Test#4 failed: { host: 'b.a.com',
cert: { subject: { CN: '*.a.com' } },
result: false }
at <omitted>/test/simple/test-tls-check-server-identity.js:201:10
Ben Noordhuis [Thu, 9 Feb 2012 05:22:50 +0000 (06:22 +0100)]
test: add cluster 'bind twice' test
This test starts two clustered HTTP servers on the same port.
It expects the first cluster to succeed and the second cluster
to fail with EADDRINUSE.
Reapplies commit cacd3ae, accidentally reverted in a2851b6.
Ben Noordhuis [Thu, 17 Jan 2013 00:10:15 +0000 (01:10 +0100)]
buffer: reject negative SlowBuffer offsets
Reject negative offsets in SlowBuffer::MakeFastBuffer(), it allows
the creation of buffers that point to arbitrary addresses.
Reported by Trevor Norris.
Chris Dent [Mon, 14 Jan 2013 22:24:30 +0000 (22:24 +0000)]
install: add simplejson fallback
Make tools/install.py work with python 2.5
2.5 is still fairly widespread and does not include a json lib as
standard. Most python folk will have simplejson if they are in that
boat.
In general it seems a bit tricky to solve this perfectly...
Bert Belder [Sat, 5 Jan 2013 21:14:50 +0000 (22:14 +0100)]
buffer: zero-length buffers shouldn't be slab-backed
Fedor Indutny [Mon, 14 Jan 2013 17:09:35 +0000 (21:09 +0400)]
tls: allow wildcards in common name
see #4592
Ben Noordhuis [Mon, 14 Jan 2013 15:35:03 +0000 (16:35 +0100)]
http: fix "Cannot call method 'emit' of null"
Fix the following exception:
http.js:974
this._httpMessage.emit('close');
^
TypeError: Cannot call method 'emit' of null
at Socket.onServerResponseClose (http.js:974:21)
at Socket.EventEmitter.emit (events.js:124:20)
at net.js:421:10
at process._tickCallback (node.js:386:13)
at process._makeCallback (node.js:304:15)
Fixes #4586.
isaacs [Fri, 11 Jan 2013 19:24:37 +0000 (11:24 -0800)]
blog: release v0.9.6
Nathan Rajlich [Fri, 11 Jan 2013 00:59:09 +0000 (16:59 -0800)]
make binary: allow custom config flags
For example, to cross-compile from my OS X laptop for Raspberry Pi, you would
do something like:
$ make binary BINARYNAME=node-v`python tools/getnodeversion.py`-linux-arm-pi \
DESTCPU=arm CONFIG_FLAGS="--dest-os=linux"
isaacs [Thu, 10 Jan 2013 15:47:09 +0000 (07:47 -0800)]
blog, changelog: 0.8.17 was released in 2013, not 2012
isaacs [Thu, 10 Jan 2013 03:05:37 +0000 (19:05 -0800)]
blog: Correct shasums for v0.8.17
isaacs [Thu, 10 Jan 2013 01:21:16 +0000 (17:21 -0800)]
blog: Add security notice to v0.8.17 post
isaacs [Thu, 10 Jan 2013 01:08:24 +0000 (17:08 -0800)]
blog: Post about v0.8.17
isaacs [Thu, 10 Jan 2013 01:07:33 +0000 (17:07 -0800)]
Now working on 0.8.18
isaacs [Thu, 10 Jan 2013 01:07:21 +0000 (17:07 -0800)]
Merge branch 'v0.8.17-release' into v0.8
isaacs [Thu, 10 Jan 2013 00:04:21 +0000 (16:04 -0800)]
2012.01.09, Version 0.8.17 (Stable)
* npm: Upgrade to v1.2.0
- peerDependencies (Domenic Denicola)
- node-gyp v0.8.2 (Nathan Rajlich)
- Faster installs from github user/project shorthands (Nathan Zadoks)
* typed arrays: fix 32 bit size/index overflow (Ben Noordhuis)
* http: Improve performance of single-packet responses (Ben Noordhuis)
* install: fix openbsd man page location (Ben Noordhuis)
* http: bubble up parser errors to ClientRequest (Brian White)
Ben Noordhuis [Wed, 9 Jan 2013 23:39:44 +0000 (00:39 +0100)]
typed arrays: fix 32 bit size/index overflow
Fix an out-of-bound read/write bug due to integer wrapping. Reported by
Dean McNamee.
isaacs [Wed, 9 Jan 2013 23:21:30 +0000 (15:21 -0800)]
npm: Upgrade to v1.2.0
Fedor Indutny [Fri, 4 Jan 2013 12:37:38 +0000 (16:37 +0400)]
object_wrap: add missing HandleScope
by Sven Panne's suggestion, see [0] for details.
[0]: https://code.google.com/p/v8/issues/detail?id=2468
Ben Noordhuis [Tue, 8 Jan 2013 03:27:34 +0000 (04:27 +0100)]
dgram: don't assert on send('string')
Raise a TypeError when the argument to send() or sendto() is anything
but a Buffer.
Fixes the following assertion:
$ node -e 'require("dgram").createSocket("udp4").send("BAM")'
node: ../../src/udp_wrap.cc:220: static v8::Handle<v8::Value>
node::UDPWrap::DoSend(const v8::Arguments&, int): Assertion
`Buffer::HasInstance(args[0])' failed.
Aborted (core dumped)
Fixes #4496.
Johannes Ewald [Fri, 4 Jan 2013 18:07:40 +0000 (19:07 +0100)]
doc: improve example of process.hrtime()
The example clarifies now that diff[0] *
1000000000 + diff[1] equals
the result in nanoseconds.
Tim Bradshaw [Thu, 20 Dec 2012 22:29:45 +0000 (22:29 +0000)]
os: change CPU time from Integer to Number
CPU time values must be Numbers, not Integers, as they can be too large
for Integers on 32 bit platforms.
Ben Noordhuis [Sun, 30 Dec 2012 23:36:47 +0000 (00:36 +0100)]
doc: add CONTRIBUTING.md
isaacs [Sun, 30 Dec 2012 01:26:32 +0000 (17:26 -0800)]
blog: Post for v0.9.5
Ben Noordhuis [Sat, 29 Dec 2012 16:34:41 +0000 (17:34 +0100)]
deps: upgrade libuv to 4997738
Maciej Małecki [Fri, 21 Dec 2012 01:56:47 +0000 (02:56 +0100)]
build: allow to specify custom tags
When building custom `node` versions (e.g., floating features/fixes from
different versions) it's often useful to specify a custom tag which
easily identifies build when invoking `node -v`.
Introduce a way to specify this tag in `node_version.h` file or by
running `./configure --tag="<tag>"`. Insert it right after the patch
version (and before `-pre`, if build is not a release).
isaacs [Wed, 26 Dec 2012 23:26:53 +0000 (15:26 -0800)]
lint
isaacs [Fri, 21 Dec 2012 20:37:39 +0000 (12:37 -0800)]
blog: Post about v0.9.4
isaacs [Fri, 21 Dec 2012 16:42:29 +0000 (16:42 +0000)]
npm: upgrade to 1.1.70
isaacs [Fri, 21 Dec 2012 00:46:40 +0000 (00:46 +0000)]
blog: More streams2 wordsmithing
isaacs [Fri, 21 Dec 2012 00:08:50 +0000 (00:08 +0000)]
blog: Update blog post re streams2
Ben Noordhuis [Wed, 19 Dec 2012 11:35:07 +0000 (12:35 +0100)]
http: pack response body buffer in first tcp packet
Apply the same optimization to res.end(buf) that is applied to res.end(str).
Speeds up `node benchmark/http_simple_auto -k -c 1 -n 25000 buffer/1`
(non-chunked response body) by about 750x. That's not a typo.
Chunked responses:
$ cat tmp/http-chunked-client.js
// Run `node benchmark/http_simple` in another terminal.
var http = require('http'), url = require('url');
var options = url.parse('http://127.0.0.1:8000/buffer/1/1');
options.agent = new http.Agent({ maxSockets: 1 });
for (var i = 0; i < 25000; ++i) http.get(options);
Before:
$ time out/Release/node tmp/http-chunked-client.js
real 16m40.411s
user 0m9.184s
sys 0m0.604s
After:
$ time out/Release/node tmp/http-chunked-client.js
real 0m5.386s
user 0m2.768s
sys 0m0.728s
That's still a 185x speed-up.
Fixes #4415.
Ben Noordhuis [Wed, 19 Dec 2012 13:09:10 +0000 (14:09 +0100)]
bench: use res.end() for chunked encoding
Use res.end() for the final chunk so we can benchmark the 'hot path' shortcut
in lib/http.js that packs the headers and the body into a single packet.
isaacs [Tue, 18 Dec 2012 16:43:45 +0000 (08:43 -0800)]
blog: post about streams2 feature
Nicolas Chambrier [Mon, 17 Dec 2012 15:53:52 +0000 (16:53 +0100)]
doc: add Google+ French community
Ben Noordhuis [Mon, 17 Dec 2012 11:05:14 +0000 (12:05 +0100)]
install: fix openbsd man page location
Man pages go into $PREFIX/man on OpenBSD, not $PREFIX/share/man.
Brian White [Tue, 7 Aug 2012 00:42:13 +0000 (20:42 -0400)]
http: bubble up parser errors to ClientRequest
Make parser errors bubble up to the ClientRequest instead of the underlying
net.Socket object.
This is a back-port of commit c78678b from the master branch.
Fixes #3776.
isaacs [Thu, 13 Dec 2012 19:50:47 +0000 (11:50 -0800)]
blog: Post for 0.8.16
isaacs [Thu, 13 Dec 2012 19:50:35 +0000 (11:50 -0800)]
Now working on 0.8.17
isaacs [Thu, 13 Dec 2012 19:50:15 +0000 (11:50 -0800)]
Merge commit 'v0.8.16' into v0.8
isaacs [Wed, 12 Dec 2012 22:44:54 +0000 (14:44 -0800)]
2012.12.13, Version 0.8.16 (Stable)
* npm: Upgrade to 1.1.69
* fs: fix WriteStream/ReadStream fd leaks (Ben Noordhuis)
* crypto: fix leak in GetPeerCertificate (Fedor Indutny)
* buffer: Don't double-negate numeric buffer arg (Trevor Norris)
* net: More accurate IP address validation and IPv6 dotted notation. (Joshua Erickson)
isaacs [Wed, 12 Dec 2012 22:41:28 +0000 (14:41 -0800)]
npm: Upgrade to v1.1.69
Ben Noordhuis [Tue, 11 Dec 2012 15:01:58 +0000 (16:01 +0100)]
fs: fix WriteStream fd leak
Close the file descriptor when a write operation fails.
Fixes #4387.
Ben Noordhuis [Tue, 11 Dec 2012 13:45:45 +0000 (14:45 +0100)]
fs: fix ReadStream fd leak
Close the file descriptor when a read operation fails.
Fixes #4387.
Ben Noordhuis [Tue, 31 Jul 2012 15:47:53 +0000 (17:47 +0200)]
test: add common.mustCall function
Verifies that the callback gets invoked <n> times during the lifetime of the
test script.
This is a back-port of commit d0e6c3f from the master branch.
isaacs [Tue, 11 Dec 2012 00:56:49 +0000 (16:56 -0800)]
doc: Add nodejstr to community page
Ben Noordhuis [Thu, 6 Dec 2012 20:58:29 +0000 (21:58 +0100)]
doc: remove broken require.extensions example
Fixes #4384.
Fedor Indutny [Sat, 1 Dec 2012 18:26:40 +0000 (22:26 +0400)]
crypto: fix leak in GetPeerCertificate
Ben Noordhuis [Sun, 2 Dec 2012 02:01:17 +0000 (03:01 +0100)]
tools: fix platform detection on freebsd, sunos
This is a back-port of upstream gyp commit r1482.
Ben Noordhuis [Sun, 2 Dec 2012 01:54:14 +0000 (02:54 +0100)]
install: fix freebsd man page location
Man pages go into $PREFIX/man on FreeBSD, not $PREFIX/share/man.
Lewuathe [Fri, 30 Nov 2012 01:13:52 +0000 (10:13 +0900)]
Fix dropped html tag
Trevor Norris [Fri, 30 Nov 2012 21:02:39 +0000 (13:02 -0800)]
buffer: Don't double-negate numeric buffer arg
Fix #4331
Using double negate forces values into 32bit space. Because of this
Math.ceil needs to be used. Since NaN comparisons are always false, use
that to our advantage to return 0 if it is.
Also added two tests to verify the changes.
Kyle Robinson Young [Thu, 29 Nov 2012 18:59:12 +0000 (10:59 -0800)]
website: typo fixes
Joshua Erickson [Tue, 9 Oct 2012 00:51:59 +0000 (19:51 -0500)]
net: More accurate IP address validation and IPv6 dotted notation.
* Added isIP method to make use of inet_pton to cares_wrap.cc
* Modified net.isIP() to make use of new C++ isIP method.
* Added new tests to test-net-isip.js.
This is a back-port of commit fb6377e from the master branch.
Ryunosuke SATO [Tue, 27 Nov 2012 14:52:49 +0000 (23:52 +0900)]
doc: Fix missing link target to 'https.request()'
isaacs [Mon, 26 Nov 2012 17:18:51 +0000 (09:18 -0800)]
blog: Post for v0.8.15
isaacs [Mon, 26 Nov 2012 17:18:33 +0000 (09:18 -0800)]
Now working on 0.8.16
isaacs [Mon, 26 Nov 2012 17:12:52 +0000 (09:12 -0800)]
Merge branch 'v0.8.15-release' into v0.8
isaacs [Thu, 25 Oct 2012 20:49:32 +0000 (13:49 -0700)]
2012.11.26, Version 0.8.15 (Stable)
* npm: Upgrade to 1.1.66 (isaacs)
* linux: use /proc/cpuinfo for CPU frequency (Ben Noordhuis)
* windows: map WSAESHUTDOWN to UV_EPIPE (Ben Noordhuis)
* windows: map ERROR_GEN_FAILURE to UV_EIO (Bert Belder)
* unix: do not set environ unless one is provided (Charlie McConnell)
* domains: don't crash if domain is set to null (Bert Belder)
* windows: fix the x64 debug build (Bert Belder)
* net, tls: fix connect() resource leak (Ben Noordhuis)
Ben Noordhuis [Mon, 26 Nov 2012 00:50:04 +0000 (01:50 +0100)]
tls: fix tls.connect() resource leak
The 'secureConnect' event listener was attached with .on(), which blocked it
from getting garbage collected. Use .once() instead.
Fixes #4308.
Ben Noordhuis [Sat, 24 Nov 2012 14:24:36 +0000 (15:24 +0100)]
net: fix net.connect() resource leak
The 'connect' event listener was attached with .on(), which blocked it from
getting garbage collected. Use .once() instead.
Fixes #4308.
isaacs [Fri, 23 Nov 2012 20:54:33 +0000 (12:54 -0800)]
blog: Don't filter out non-latest release notes
This causes too many people to ask me why it's broken.
isaacs [Fri, 23 Nov 2012 20:51:23 +0000 (12:51 -0800)]
npm: Upgrade to 1.1.66
Trevor Norris [Thu, 22 Nov 2012 17:30:18 +0000 (09:30 -0800)]
doc: Add lines about additonal uses of Buffer
That Buffers can be used with Typed Array Views and DataViews. Included
are a couple simple examples.
Closes #4257.
Ben Noordhuis [Tue, 20 Nov 2012 18:21:48 +0000 (19:21 +0100)]
deps: upgrade libuv to 5639b2f
Bert Belder [Thu, 8 Nov 2012 23:49:24 +0000 (00:49 +0100)]
domains: don't crash if domain is set to null
Closes #4256