isaacs f153d6da45 http client: pull last chunk on socket close
When the socket closes, the client's http incoming message object was
emitting an 'aborted' event if it had not yet been ended.

However, it's possible, when a response is being repeatedly paused and
resumed (eg, if piped to a slow FS write stream), that there will be a
final chunk remaining in the js-land buffer when the socket is torn
down.

When that happens, the socketCloseListener function detects that we have
not yet reached the end of the response message data, and treats this as
an abrupt abort, immediately (and forcibly) ending the incoming message
data stream, and discarding that final chunk of data.

The result is that, for example, npm will have problems because tarballs
are missing a few bytes off the end, every time.

Closes GH-6402
2013-10-23 13:39:05 -07:00
2013-10-23 09:17:31 -07:00
2013-10-16 18:34:52 -07:00
2013-10-23 09:17:31 -07:00
2013-10-17 00:34:19 +04:00
2013-03-19 20:07:38 +01:00
2013-06-17 17:21:56 +02:00
2013-08-10 15:46:06 +02:00
2013-10-23 09:17:32 -07:00

Evented I/O for V8 javascript.

To build:

Prerequisites (Unix only):

* GCC 4.2 or newer
* Python 2.6 or 2.7
* GNU Make 3.81 or newer
* libexecinfo (FreeBSD and OpenBSD only)

Unix/Macintosh:

./configure
make
make install

If your python binary is in a non-standard location or has a non-standard name, run the following instead:

export PYTHON=/path/to/python
$PYTHON ./configure
make
make install

Prerequisites (Windows only):

* Python 2.6 or 2.7
* Visual Studio 2010 or 2012

Windows:

vcbuild nosign

To run the tests:

Unix/Macintosh:

make test

Windows:

vcbuild test

To build the documentation:

make doc

To read the documentation:

man doc/node.1

Resources for Newcomers

Languages
JavaScript 65.4%
C++ 22.6%
Python 8.4%
C 2.1%
HTML 0.5%
Other 0.8%