summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 2013.03.28, Version 0.10.2 (Stable)v0.10.2v0.10.2-releaseisaacs2013-03-283-2/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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)
* deps: upgrade libuv to v0.10.3Bert Belder2013-03-284-2/+19
|
* npm: Upgrade to v1.2.15isaacs2013-03-2818-83/+218
|
* tls: handle SSL_ERROR_ZERO_RETURNFedor Indutny2013-03-282-3/+12
| | | | see #5004
* setTimeout: do not calculate Timeout._when propertywicked2013-03-281-2/+5
| | | | Dramatically improves Timer performance.
* stream: Emit readable on ended streams via read(0)isaacs2013-03-282-1/+25
| | | | cc: @mjijackson
* stream: Handle late 'readable' event listenersisaacs2013-03-282-3/+96
| | | | | | | | | | | | | | | | | | | | 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
* doc: Add 'don't ignore errors' section to domainisaacs2013-03-281-17/+153
| | | | | Also, an example program of using cluster and domain to handle errors safely, with zero downtime, using process isolation.
* doc: debugger, dns, http: fix grammarBenjamin Ruston2013-03-283-3/+3
|
* deps: upgrade libuv to 7514149Ben Noordhuis2013-03-2810-27/+154
|
* test: Accept either kind of NaNisaacs2013-03-272-5/+15
| | | | | | | 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.
* tls: handle errors before calling C++ methodsFedor Indutny2013-03-272-9/+75
| | | | | | | | | | | 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
* doc: addon: fix grammarBenjamin Ruston2013-03-271-2/+2
|
* openssl: disable HEARTBEAT TLS extensionFedor Indutny2013-03-271-1/+7
| | | | | | | | | | 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
* domain: fix domain callback from MakeCallbackTrevor Norris2013-03-264-41/+97
| | | | | | | | | | | | 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.
* doc: child_process: document 'error' eventBen Noordhuis2013-03-261-2/+25
| | | | Fixes #5130.
* doc: fix formatting in tty.markdownBen Noordhuis2013-03-261-1/+1
| | | | Fixes #5135.
* test: test name is the last elem, not secondTimothy J Fontaine2013-03-261-1/+1
| | | | | 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.
* child_process: don't emit same handle twiceBen Noordhuis2013-03-252-0/+2
| | | | | | 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.
* crypto: make getCiphers() return non-SSL ciphersBen Noordhuis2013-03-256-23/+60
| | | | | | | | | | | | | | Commit f53441a added crypto.getCiphers() as a function that returns the names of SSL ciphers. Commit 14a6c4e 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.
* doc: mention `process.*.isTTY` under `process`Mathias Bynens2013-03-251-0/+14
|
* child_process: fix sending utf-8 to child processBen Noordhuis2013-03-252-1/+37
| | | | | | | | | | | | | 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 96a314b for details. Fixes #4999 and #5011.
* bench: add child process read perf benchmarkBen Noordhuis2013-03-251-0/+28
|
* deps: fix openssl build on windowsBen Noordhuis2013-03-241-1/+7
| | | | | | | | | Commit 8632af3 ("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.
* stream: Fix early end in Writables on zero-length writesisaacs2013-03-243-1/+72
| | | | | | | | | | 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.
* tools: update gyp to r1601Ben Noordhuis2013-03-2423-500/+722
| | | | | Among other things, this should make it easier for people to build node.js on openbsd.
* doc: update CONTRIBUTING.mdBen Noordhuis2013-03-241-5/+6
| | | | | * Latest stable is v0.10 now. * Add example of what the first line of the commit log should look like.
* timer: fix off-by-one ms errorAlexey Kupershtokh2013-03-232-1/+49
| | | | Fix #5103
* tls: remove harmful unnecessary bounds checkingMarcel Laverdet2013-03-241-20/+0
| | | | | | | | | | | | | | | | | | | The EncIn, EncOut, ClearIn & ClearOut functions are victims of some code copy + pasting. A common line copied to all of them is: `if (off >= buffer_length) { ...` 448e0f43 corrected ClearIn's check from `>=` to `>`, but left the others unchanged (with an incorrect bounds check). However, if you look down at the next very next bounds check you'll see: `if (off + len > buffer_length) { ...` So the check is actually obviated by the next line, and should be removed. This fixes an issue where writing a zero-length buffer to an encrypted pair's *encrypted* stream you would get a crash.
* v8: Unify kMaxArguments with number of bits used to encode it.verwaest@chromium.org2013-03-235-14/+13
| | | | | | | | | | Increase the number of bits by 1 by making Flags unsigned. BUG=chromium:211741 Review URL: https://chromiumcodereview.appspot.com/12886008 This is a back-port of commits 13964 and 13988 addressing CVE-2013-2632.
* crypto: check randomBytes() size argumentBen Noordhuis2013-03-232-3/+11
| | | | | | | | | | Throw a TypeError if size > 0x3fffffff. Avoids the following V8 fatal error: FATAL ERROR: v8::Object::SetIndexedPropertiesToExternalArrayData() length exceeds max acceptable value Fixes #5126.
* doc: document that stdio is usually blockingBen Noordhuis2013-03-231-0/+13
|
* stream: Fix stall in Transform under very specific conditionsGil Pedersen2013-03-212-0/+37
| | | | | | | | | | | | | | | | | The stall is exposed in the test, though the test itself asserts before it stalls. The test is constructed to replicate the stalling state of a complex Passthrough usecase since I was not able to reliable trigger the stall. Some of the preconditions for triggering the stall are: * rs.length >= rs.highWaterMark * !rs.needReadable * _transform() handler that can return empty transforms * multiple sync write() calls Combined this can trigger a case where rs.reading is not cleared when further progress requires this. The fix is to always clear rs.reading.
* timers: handle signed int32 overflow in enroll()Fedor Indutny2013-03-212-0/+69
| | | | | | | | | | Before this patch calling `socket.setTimeout(0xffffffff)` will result in signed int32 overflow in C++ which resulted in assertion error: Assertion failed: (timeout >= -1), function uv__io_poll, file ../deps/uv/src/unix/kqueue.c, line 121. see #5101
* blog: Post for v0.10.1isaacs2013-03-211-0/+82
|
* Now working on v0.10.2isaacs2013-03-211-2/+2
|
* Merge branch 'v0.10.1-release' into v0.10isaacs2013-03-213-2/+34
|\
| * 2013.03.21, Version 0.10.1 (Stable)v0.10.1v0.10.1-releaseisaacs2013-03-203-2/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * npm: upgrade to 1.2.15 * crypto: Improve performance of non-stream APIs (Fedor Indutny) * tls: always reset this.ssl.error after handling (Fedor Indutny) * tls: Prevent mid-stream hangs (Fedor Indutny, isaacs) * net: improve arbitrary tcp socket support (Ben Noordhuis) * net: handle 'finish' event only after 'connect' (Fedor Indutny) * http: Don't hot-path end() for large buffers (isaacs) * fs: Missing cb errors are deprecated, not a throw (isaacs) * fs: make write/appendFileSync correctly set file mode (Raymond Feng) * stream: Return self from readable.wrap (isaacs) * stream: Never call decoder.end() multiple times (Gil Pedersen) * windows: enable watching signals with process.on('SIGXYZ') (Bert Belder) * node: revert removal of MakeCallback (Trevor Norris) * node: Unwrap without aborting in handle fd getter (isaacs)
* | deps: upgrade libuv to 9b61939Ben Noordhuis2013-03-215-16/+98
|/
* npm: upgrade to 1.2.15isaacs2013-03-20120-221/+358
|
* crypto: initialize transform lazilyFedor Indutny2013-03-201-12/+30
|
* tls: Prevent hang in readStartisaacs2013-03-201-1/+4
| | | | | | | | | | | | | | | This is not a great fix, and it's a bug that's very tricky to reproduce. Occasionally, while downloading a file, especially on Linux for some reason, the pause/resume timing will be just right such that the CryptoStream is in a 'reading' state, but actually has no data, so it ought to pull more in. Because there's no reads happening, it just sits there, and the process will exit This is, fundamentally, a factor of how the HTTP implementation sits atop CryptoStreams and TCP Socket objects, which is utterly horrible, and needs to be rewritten. However, in the meantime, npm downloads are prematurely exiting, causing hard-to-debug "cb() never called!" errors.
* bench: compare binaries equal timesTrevor Norris2013-03-201-18/+6
| | | | | | The benchmark compare would drop the last run of the binary pairs. So when they were only run once an error would arise because no data was generated for the second binary.
* bench: add dgram send/recv benchmarkBen Noordhuis2013-03-201-0/+61
|
* tls: always reset this.ssl.error after handlingFedor Indutny2013-03-201-19/+14
| | | | | | | | | | Otherwise assertion may happen: src/node_crypto.cc:962: void node::crypto::Connection::ClearError(): Assertion `handle_->Get(String::New("error"))->BooleanValue() == false' failed. See #5058
* fs: make write/appendFileSync correctly set file modeRaymond Feng2013-03-202-1/+99
|
* doc: fix streams2 SimpleProtocol exampleIskren Ivov Chernev2013-03-201-2/+2
| | | | A non-existing variable `b` was used to queue data for reading.
* windows: enable watching signals with process.on('SIGXYZ')Bert Belder2013-03-201-4/+0
| | | | | | | | | This reverts commit ea1cba6246a8b1784e22d076139b9244a9ff42f8. The offending commit was intended to land on the v0.8 branch only, but it accidentally got merged at some point. Closes #5054.
* Update .mailmap and AUTHORSBert Belder2013-03-192-7/+20
|
* doc: fix broken links in blog footerBen Noordhuis2013-03-181-5/+5
| | | | | | | The blog lives at blog.nodejs.org while the main website lives at nodejs.org. Ergo, use absolute URLs for links to the main website. Fixes #5062.