- Apr 03, 2013
-
-
isaacs authored
If an http response has an 'end' handler that throws, then the socket will never be released back into the pool. Granted, we do NOT guarantee that throwing will never have adverse effects on Node internal state. Such a guarantee cannot be reasonably made in a shared-global mutable-state side-effecty language like JavaScript. However, in this case, it's a rather trivial patch to increase our resilience a little bit, so it seems like a win. There is no semantic change in this case, except that some event listeners are removed, and the `'free'` event is emitted on nextTick, so that you can schedule another request which will re-use the same socket. From the user's point of view, there should be no detectable difference. Closes #5107
-
- Apr 02, 2013
-
-
Andrew Hart authored
The tests did not agree with the test comments. Tests first and second were both testing the !state.reading case. Now second tests the state.reading && state.length case. Fixes joyent/node#5183
-
isaacs authored
The v0.8 Stream.pipe() method automatically destroyed the destination stream whenever the src stream closed. However, this caused a lot of problems, and was removed by popular demand. (Many userland modules still have a no-op destroy() method just because of this.) It was also very hazardous because this would be done even if { end: false } was passed in the pipe options. In v0.10, we decided that the 'close' event and destroy() method are application-specific, and pipe() doesn't automatically call destroy(). However, TLS actually depended (silently) on this behavior. So, in this case, we should just go ahead and destroy the thing when close happens. Closes #5145 -
Michael Hart authored
-
- Apr 01, 2013
-
-
Mitar authored
Binding of `http_parser` in querystring isn't used anywhere and should be removed.
-
- Mar 31, 2013
-
-
Nathan Rajlich authored
This is just a cosmetic change really, nothing major.
-
Nathan Rajlich authored
Closes #5178.
-
- Mar 30, 2013
-
-
isaacs authored
-
- Mar 29, 2013
-
-
isaacs authored
-
isaacs authored
I just accidentally the binary release.
-
isaacs authored
-
isaacs authored
-
isaacs authored
-
Ben Noordhuis authored
-
isaacs authored
* npm: Upgrade to 1.2.15 * uv: Upgrade to 0.10.3 * tls: handle SSL_ERROR_ZERO_RETURN (Fedor Indutny) * tls: handle errors before calling C++ methods (Fedor Indutny) * tls: remove harmful unnecessary bounds checking (Marcel Laverdet) * crypto: make getCiphers() return non-SSL ciphers (Ben Noordhuis) * crypto: check randomBytes() size argument (Ben Noordhuis) * timers: do not calculate Timeout._when property (Alexey Kupershtokh) * timers: fix off-by-one ms error (Alexey Kupershtokh) * timers: handle signed int32 overflow in enroll() (Fedor Indutny) * stream: Fix stall in Transform under very specific conditions (Gil Pedersen) * stream: Handle late 'readable' event listeners (isaacs) * stream: Fix early end in Writables on zero-length writes (isaacs) * domain: fix domain callback from MakeCallback (Trevor Norris) * child_process: don't emit same handle twice (Ben Noordhuis) * child_process: fix sending utf-8 to child process (Ben Noordhuis)
-
Bert Belder authored
-
isaacs authored
-
Fedor Indutny authored
see #5004
-
wicked authored
Dramatically improves Timer performance.
-
isaacs authored
cc: @mjijackson
-
isaacs authored
In cases where a stream may have data added to the read queue before the user adds a 'readable' event, there is never any indication that it's time to start reading. True, there's already data there, which the user would get if they checked However, as we use 'readable' event listening as the signal to start the flow of data with a read(0) call internally, we ought to trigger the same effect (ie, emitting a 'readable' event) even if the 'readable' listener is added after the first emission. To avoid confusing weirdness, only the *first* 'readable' event listener is granted this privileged status. After we've started the flow (or, alerted the consumer that the flow has started) we don't need to start it again. At that point, it's the consumer's responsibility to consume the stream. Closes #5141
-
isaacs authored
Also, an example program of using cluster and domain to handle errors safely, with zero downtime, using process isolation.
-
- Mar 28, 2013
-
-
Benjamin Ruston authored
-
Ben Noordhuis authored
-
isaacs authored
A llvm/clang bug on Darwin ia32 makes these tests fail 100% of the time. Since no one really seems to mind overly much, and we can't reasonably fix this in node anyway, just accept both types of NaN for now.
-
- Mar 27, 2013
-
-
Fedor Indutny authored
Calling `this.pair.encrypted._internallyPendingBytes()` before handling/resetting error will result in assertion failure: ../src/node_crypto.cc:962: void node::crypto::Connection::ClearError(): Assertion `handle_->Get(String::New("error"))->BooleanValue() == false' failed. see #5058 -
Benjamin Ruston authored
-
Fedor Indutny authored
Microsoft's IIS doesn't support it, and is not replying with ServerHello after receiving ClientHello which contains it. The good way might be allowing to opt-out this at runtime from javascript-land, but unfortunately OpenSSL doesn't support it right now. see #5119
-
Trevor Norris authored
Since _tickCallback and _tickDomainCallback were both called from MakeCallback, it was possible for a callback to be called that required a domain directly to _tickCallback. The fix was to implement process.usingDomains(). This will set all applicable functions to their domain counterparts, and set a flag in cc to let MakeCallback know domain callbacks always need to be checked. Added test in own file. It's important that the test remains isolated.
-
- Mar 26, 2013
-
-
Ben Noordhuis authored
Fixes #5130.
-
Ben Noordhuis authored
Fixes #5135.
-
Timothy J Fontaine authored
When a test requires node to have parameters passed (--expose-gc) the test name will be the last element in the command array, not the second.
-
Ben Noordhuis authored
It's possible to read multiple messages off the parent/child channel. When that happens, make sure that recvHandle is cleared after emitting the first message so it doesn't get emitted twice.
-
Ben Noordhuis authored
Commit f53441ab added crypto.getCiphers() as a function that returns the names of SSL ciphers. Commit 14a6c4ef then added crypto.getHashes(), which returns the names of digest algorithms, but that creates a subtle inconsistency: the return values of crypto.getHashes() are valid arguments to crypto.createHash() but that is not true for crypto.getCiphers() - the returned values are only valid for SSL/TLS functions. Rectify that by adding tls.getCiphers() and making crypto.getCiphers() return proper cipher names.
-
- Mar 25, 2013
-
-
Mathias Bynens authored
-
Ben Noordhuis authored
In process#send() and child_process.ChildProcess#send(), use 'utf8' as the encoding instead of 'ascii' because 'ascii' mutilates non-ASCII input. Correctly handle partial character sequences by introducing a StringDecoder. Sending over UTF-8 no longer works in v0.10 because the high bit of each byte is now cleared when converting a Buffer to ASCII. See commit 96a314b6 for details. Fixes #4999 and #5011.
-
Ben Noordhuis authored
-
Ben Noordhuis authored
Commit 8632af38 ("tools: update gyp to r1601") broke the Windows build. Older versions of GYP link to kernel32.lib, user32.lib, etc. but that was changed in r1584. See https://codereview.chromium.org/12256017 Fix the build by explicitly linking to the required libraries.
-
isaacs authored
Doing this causes problems: z.write(Buffer(0)); z.end(); Fix by not ending Writable streams while they're still in the process of writing something.
-
- Mar 24, 2013
-
-
Ben Noordhuis authored
Among other things, this should make it easier for people to build node.js on openbsd.
-