mirror of https://github.com/lukechilds/node.git
Browse Source
rnewson found a good bug in keep-alive. we were only using the request headers we send to enable/disable keep-alive but when the server sends Connection: close we need to close down the connection regardless. I wrote up a patch the Robert verified makes all his test client code work now and I also added a new unittest for it.v0.7.4-release
Mikeal Rogers
14 years ago
committed by
Ryan Dahl
2 changed files with 53 additions and 0 deletions
@ -0,0 +1,49 @@ |
|||||
|
common = require("../common"); |
||||
|
assert = common.assert |
||||
|
|
||||
|
assert = require("assert"); |
||||
|
http = require("http"); |
||||
|
sys = require("sys"); |
||||
|
|
||||
|
body = "hello world\n"; |
||||
|
headers = {'connection':'keep-alive'} |
||||
|
|
||||
|
server = http.createServer(function (req, res) { |
||||
|
res.writeHead(200, {"Content-Length": body.length, "Connection":"close"}); |
||||
|
res.write(body); |
||||
|
res.end(); |
||||
|
}); |
||||
|
|
||||
|
connectCount = 0; |
||||
|
|
||||
|
server.listen(common.PORT, function () { |
||||
|
var client = http.createClient(common.PORT); |
||||
|
|
||||
|
client.addListener("connect", function () { |
||||
|
common.error("CONNECTED") |
||||
|
connectCount++; |
||||
|
}) |
||||
|
|
||||
|
var request = client.request("GET", "/", headers); |
||||
|
request.end(); |
||||
|
request.addListener('response', function (response) { |
||||
|
common.error('response start'); |
||||
|
|
||||
|
|
||||
|
response.addListener("end", function () { |
||||
|
common.error('response end'); |
||||
|
var req = client.request("GET", "/", headers); |
||||
|
req.addListener('response', function (response) { |
||||
|
response.addListener("end", function () { |
||||
|
client.end(); |
||||
|
server.close(); |
||||
|
}) |
||||
|
}) |
||||
|
req.end(); |
||||
|
}); |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
process.addListener('exit', function () { |
||||
|
assert.equal(2, connectCount); |
||||
|
}); |
Loading…
Reference in new issue