mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
c492d43f4817eb65cd251749bd074df7bb4ebc28
Commit 4e5fe2d changed the way how process.nextTick() works:
process.nextTick(function foo() {
process.nextTick(function bar() {
// ...
});
});
Before said commit, foo() and bar() used to run on separate event loop ticks
but that is no longer the case.
However, that's exactly the behavior that the TLS renegotiation attack guard
relies on. It gets called by OpenSSL and needs to defer the 'error' event to a
later tick because the default action is to destroy the TLS context - the same
context that OpenSSL currently operates on.
When things change underneath your feet, bad things happen and OpenSSL is no
exception. Ergo, use setImmediate() instead of process.nextTick() to ensure
that the 'error' event is actually emitted at a later tick.
Fixes #3840.
Evented I/O for V8 javascript. 
To build:
Unix/Macintosh. Requires python 2.6 or 2.7 and GNU make 3.81 or newer:
./configure
make
make install
Windows:
vcbuild.bat
To run the tests:
Unix/Macintosh:
make test
Windows:
vcbuild.bat test
To build the documentation:
make doc
To read the documentation:
man doc/node.1
Resources for Newcomers
Description
Languages
JavaScript
62.4%
C++
23.1%
Python
10.1%
C
2.7%
HTML
0.6%
Other
0.9%