mirror of https://github.com/lukechilds/node.git
Browse Source
Fixes new bug shown in test-http-allow-req-after-204-res.js pointed out by Tom Carden <tom.carden@gmail.com>.v0.7.4-release
Ryan Dahl
14 years ago
2 changed files with 64 additions and 11 deletions
@ -0,0 +1,43 @@ |
|||||
|
var common = require('../common'); |
||||
|
var http = require('http'); |
||||
|
var assert = require('assert'); |
||||
|
|
||||
|
// first 204 or 304 works, subsequent anything fails
|
||||
|
var codes = [ 204, 200 ]; |
||||
|
|
||||
|
// Methods don't really matter, but we put in something realistic.
|
||||
|
var methods = ['DELETE', 'DELETE']; |
||||
|
|
||||
|
var server = http.createServer(function (req, res) { |
||||
|
var code = codes.shift(); |
||||
|
assert.equal('number', typeof code); |
||||
|
assert.ok(code > 0); |
||||
|
console.error('writing %d response', code); |
||||
|
res.writeHead(code, {}); |
||||
|
res.end(); |
||||
|
}); |
||||
|
|
||||
|
var client = http.createClient(common.PORT); |
||||
|
|
||||
|
function nextRequest() { |
||||
|
var method = methods.shift(); |
||||
|
console.error("writing request: %s", method); |
||||
|
|
||||
|
var request = client.request(method, '/'); |
||||
|
request.on('response', function (response) { |
||||
|
response.on('end', function() { |
||||
|
if (methods.length == 0) { |
||||
|
console.error("close server"); |
||||
|
server.close(); |
||||
|
} else { |
||||
|
// throws error:
|
||||
|
nextRequest(); |
||||
|
// works just fine:
|
||||
|
//process.nextTick(nextRequest);
|
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
request.end(); |
||||
|
} |
||||
|
|
||||
|
server.listen(common.PORT, nextRequest); |
Loading…
Reference in new issue