fixed HTTP duplicated header bug

added test case for HTTP duplicated header bug on keepalive
This commit is contained in:
Michaeljohn Clement 2009-12-02 00:38:42 -05:00 committed by Ryan Dahl
parent 5b1a535cd8
commit 485823f3e4
2 changed files with 22 additions and 6 deletions

View File

@ -355,11 +355,12 @@ function createIncomingMessageStream (connection, incoming_listener) {
stream.addListener("incoming", incoming_listener);
var incoming;
var field = null, value = null;
var incoming, field, value;
connection.addListener("messageBegin", function () {
incoming = new IncomingMessage(connection);
field = null;
value = null;
});
// Only servers will get URI events.

View File

@ -23,6 +23,14 @@ http.createServer(function (req, res) {
if (req.id == 1) {
assertEquals("POST", req.method);
assertEquals("/quit", req.uri.path);
}
if (req.id == 2) {
assertEquals("foo", req.headers['x-x']);
}
if (req.id == 3) {
assertEquals("bar", req.headers['x-x']);
this.close();
//puts("server closed");
}
@ -49,10 +57,17 @@ c.addListener("receive", function (chunk) {
if (requests_sent == 1) {
c.send("POST /quit HTTP/1.1\r\n\r\n");
c.close();
assertEquals(c.readyState, "readOnly");
requests_sent += 1;
}
if (requests_sent == 2) {
c.send("GET / HTTP/1.1\r\nX-X: foo\r\n\r\n"
+"GET / HTTP/1.1\r\nX-X: bar\r\n\r\n");
c.close();
assertEquals(c.readyState, "readOnly");
requests_sent += 2;
}
});
c.addListener("eof", function () {
@ -64,8 +79,8 @@ c.addListener("close", function () {
});
process.addListener("exit", function () {
assertEquals(2, request_number);
assertEquals(2, requests_sent);
assertEquals(4, request_number);
assertEquals(4, requests_sent);
var hello = new RegExp("/hello");
assertTrue(hello.exec(server_response) != null);