<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/node.git/lib/_http_client.js, branch move-debugger-tests</title>
<subtitle>github.com: joyent/node.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/'/>
<entry>
<title>src: revert domain using AsyncListeners</title>
<updated>2014-01-09T21:25:20+00:00</updated>
<author>
<name>Trevor Norris</name>
<email>trev.norris@gmail.com</email>
</author>
<published>2014-01-09T19:11:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=828f14556e0daeae7fdac08fceaa90952de63f73'/>
<id>828f14556e0daeae7fdac08fceaa90952de63f73</id>
<content type='text'>
This is a slightly modified revert of bc39bdd.

Getting domains to use AsyncListeners became too much of a challenge
with many edge cases. While this is still a goal, it will have to be
deferred for now until more test coverage can be provided.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a slightly modified revert of bc39bdd.

Getting domains to use AsyncListeners became too much of a challenge
with many edge cases. While this is still a goal, it will have to be
deferred for now until more test coverage can be provided.
</pre>
</div>
</content>
</entry>
<entry>
<title>http: DELETE shouldn't default to chunked encoding</title>
<updated>2013-12-07T00:25:42+00:00</updated>
<author>
<name>Lalit Kapoor</name>
<email>lalitkapoor@gmail.com</email>
</author>
<published>2013-11-22T02:44:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=aef09601b4320648f4b6fac0baba3e5c54b0406a'/>
<id>aef09601b4320648f4b6fac0baba3e5c54b0406a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>http: fix parser double-free in _http_client.js</title>
<updated>2013-11-27T23:37:56+00:00</updated>
<author>
<name>Fedor Indutny</name>
<email>fedor.indutny@gmail.com</email>
</author>
<published>2013-11-27T10:54:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=5ce4eed54dceb15c34d3508e733124edd282601b'/>
<id>5ce4eed54dceb15c34d3508e733124edd282601b</id>
<content type='text'>
HTTP Parser instance was freed twice, leading to the reusal of it
in several different requests simultaneously.

The flow:

`socketCloseListener` is firing, which calls `socket.read()` to flush
any queued data, `socket.buffer` has data which emits and fires
`socketOnData` in sync, this triggers a parser error which frees the
parser, `socketCloseListener` resumes execution only to have the wrong
parser associated with the socket.

The fix is to only cache the parser after the flushing from the socket,
and to assert in `socketOnData` that `socket === parser.socket`

fix #6451
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
HTTP Parser instance was freed twice, leading to the reusal of it
in several different requests simultaneously.

The flow:

`socketCloseListener` is firing, which calls `socket.read()` to flush
any queued data, `socket.buffer` has data which emits and fires
`socketOnData` in sync, this triggers a parser error which frees the
parser, `socketCloseListener` resumes execution only to have the wrong
parser associated with the socket.

The fix is to only cache the parser after the flushing from the socket,
and to assert in `socketOnData` that `socket === parser.socket`

fix #6451
</pre>
</div>
</content>
</entry>
<entry>
<title>domain: use AsyncListener API</title>
<updated>2013-10-31T23:34:35+00:00</updated>
<author>
<name>Trevor Norris</name>
<email>trev.norris@gmail.com</email>
</author>
<published>2013-10-29T23:35:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=bc39bdd995d70238eea4a217386869d94c69f614'/>
<id>bc39bdd995d70238eea4a217386869d94c69f614</id>
<content type='text'>
The domain module has been switched over to use the domain module API as
much as currently possible. There are still some hooks in the
EventEmitter, but hopefully we can remove those in the future.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The domain module has been switched over to use the domain module API as
much as currently possible. There are still some hooks in the
EventEmitter, but hopefully we can remove those in the future.
</pre>
</div>
</content>
</entry>
<entry>
<title>http client: pull last chunk on socket close</title>
<updated>2013-10-23T20:39:05+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-10-23T20:08:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=f153d6da450b6ba5c78381e6e90a7ba243657691'/>
<id>f153d6da450b6ba5c78381e6e90a7ba243657691</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>http: Only send connection:keep-alive if necessary</title>
<updated>2013-09-04T18:19:39+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-08-18T01:50:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=15a5a4a9453a056b783c7ff0966e31c3c6b7d7e1'/>
<id>15a5a4a9453a056b783c7ff0966e31c3c6b7d7e1</id>
<content type='text'>
In cases where the Agent has maxSockets=Infinity, and
keepAlive=false, there's no case where we won't immediately close the
connection after the response is completed.

Since we're going to close it anyway, send a `connection:close` header
rather than a `connection:keep-alive` header.  Still send the
`connection:keep-alive` if the agent will actually reuse the socket,
however.

Closes #5838
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In cases where the Agent has maxSockets=Infinity, and
keepAlive=false, there's no case where we won't immediately close the
connection after the response is completed.

Since we're going to close it anyway, send a `connection:close` header
rather than a `connection:keep-alive` header.  Still send the
`connection:keep-alive` if the agent will actually reuse the socket,
however.

Closes #5838
</pre>
</div>
</content>
</entry>
<entry>
<title>lib: remove unused variables and functions</title>
<updated>2013-08-16T00:19:17+00:00</updated>
<author>
<name>Brian White</name>
<email>mscdex@mscdex.net</email>
</author>
<published>2013-08-15T21:55:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=6d842897c5966cee1924b5073e273568923c8693'/>
<id>6d842897c5966cee1924b5073e273568923c8693</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>http: Use streams3 directly, not .ondata/end</title>
<updated>2013-08-08T20:01:09+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-07-26T02:33:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=967b5dbb453f811060645c9bd2bcc8ca8fef0d96'/>
<id>967b5dbb453f811060645c9bd2bcc8ca8fef0d96</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>https: fix default port</title>
<updated>2013-08-05T19:53:12+00:00</updated>
<author>
<name>Koichi Kobayashi</name>
<email>koichik@improvement.jp</email>
</author>
<published>2013-08-04T06:39:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=72ad2c94df3f67674076b9d81b4e30f0cf448266'/>
<id>72ad2c94df3f67674076b9d81b4e30f0cf448266</id>
<content type='text'>
https.get('https://github.com/') should use port 443, not 80.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https.get('https://github.com/') should use port 443, not 80.
</pre>
</div>
</content>
</entry>
<entry>
<title>src: Replace macros with util functions</title>
<updated>2013-08-01T22:08:01+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-07-26T21:38:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=22c68fdc1dae40f0ed9c71a02f66e5b2c6353691'/>
<id>22c68fdc1dae40f0ed9c71a02f66e5b2c6353691</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
