})
server.listen(common.PORT);
-var c = net.createConnection(common.PORT);
+server.addListener("listening", function() {
+ var c = net.createConnection(common.PORT);
-c.setEncoding("utf8");
+ c.setEncoding("utf8");
-c.addListener("connect", function () {
- c.write( "GET / HTTP/1.0\r\n\r\n" );
-});
+ c.addListener("connect", function () {
+ c.write( "GET / HTTP/1.0\r\n\r\n" );
+ });
-c.addListener("data", function (chunk) {
- console.log(chunk);
- server_response += chunk;
-});
+ c.addListener("data", function (chunk) {
+ console.log(chunk);
+ server_response += chunk;
+ });
-c.addListener("end", function () {
- client_got_eof = true;
- c.end();
- server.close();
+ c.addListener("end", function () {
+ client_got_eof = true;
+ c.end();
+ server.close();
+ });
});
process.addListener("exit", function () {
});
server.listen(common.PORT);
-http.cat("http://127.0.0.1:"+common.PORT+"/", "utf8", function (err, data) {
- if (err) throw err;
- assert.equal('string', typeof data);
- console.log('here is the response:');
- assert.equal(UTF8_STRING, data);
- console.log(data);
- server.close();
-})
+server.addListener("listening", function() {
+ http.cat("http://127.0.0.1:"+common.PORT+"/", "utf8", function (err, data) {
+ if (err) throw err;
+ assert.equal('string', typeof data);
+ console.log('here is the response:');
+ assert.equal(UTF8_STRING, data);
+ console.log(data);
+ server.close();
+ });
+});
\ No newline at end of file
};
res.writeHead(200, { "Content-Type": "text/plain"
- , "Content-Length": body.length
- });
+ , "Content-Length": body.length
+ });
res.end(body);
});
server.listen(common.PORT);
-var client = http.createClient(common.PORT);
-
var body1 = "";
var body2 = "";
var body3 = "";
-//
-// Client #1 is assigned Parser #1
-//
-var req1 = client.request("/1")
-req1.end();
-req1.addListener('response', function (res1) {
- res1.setBodyEncoding("utf8");
+server.addListener("listening", function() {
+ var client = http.createClient(common.PORT);
- res1.addListener('data', function (chunk) {
- body1 += chunk;
- });
+ //
+ // Client #1 is assigned Parser #1
+ //
+ var req1 = client.request("/1")
+ req1.end();
+ req1.addListener('response', function (res1) {
+ res1.setEncoding("utf8");
- res1.addListener('end', function () {
- //
- // Delay execution a little to allow the "close" event to be processed
- // (required to trigger this bug!)
- //
- setTimeout(function () {
- //
- // The bug would introduce itself here: Client #2 would be allocated the
- // parser that previously belonged to Client #1. But we're not finished
- // with Client #1 yet!
- //
- var client2 = http.createClient(common.PORT);
+ res1.addListener('data', function (chunk) {
+ body1 += chunk;
+ });
+ res1.addListener('end', function () {
//
- // At this point, the bug would manifest itself and crash because the
- // internal state of the parser was no longer valid for use by Client #1.
+ // Delay execution a little to allow the "close" event to be processed
+ // (required to trigger this bug!)
//
- var req2 = client.request("/2");
- req2.end();
- req2.addListener('response', function (res2) {
- res2.setBodyEncoding("utf8");
- res2.addListener('data', function (chunk) { body2 += chunk; });
- res2.addListener('end', function () {
+ setTimeout(function () {
+ //
+ // The bug would introduce itself here: Client #2 would be allocated the
+ // parser that previously belonged to Client #1. But we're not finished
+ // with Client #1 yet!
+ //
+ var client2 = http.createClient(common.PORT);
+
+ //
+ // At this point, the bug would manifest itself and crash because the
+ // internal state of the parser was no longer valid for use by Client #1.
+ //
+ var req2 = client.request("/2");
+ req2.end();
+ req2.addListener('response', function (res2) {
+ res2.setEncoding("utf8");
+ res2.addListener('data', function (chunk) { body2 += chunk; });
+ res2.addListener('end', function () {
- //
- // Just to be really sure we've covered all our bases, execute a
- // request using client2.
- //
- var req3 = client2.request("/3");
- req3.end();
- req3.addListener('response', function (res3) {
- res3.setBodyEncoding("utf8");
- res3.addListener('data', function (chunk) { body3 += chunk });
- res3.addListener('end', function() { server.close(); });
+ //
+ // Just to be really sure we've covered all our bases, execute a
+ // request using client2.
+ //
+ var req3 = client2.request("/3");
+ req3.end();
+ req3.addListener('response', function (res3) {
+ res3.setEncoding("utf8");
+ res3.addListener('data', function (chunk) { body3 += chunk });
+ res3.addListener('end', function() { server.close(); });
+ });
});
});
- });
- }, 500);
+ }, 500);
+ });
});
});
});
server.listen(common.PORT);
-var client = http.createClient(common.PORT);
-
var body1 = "";
var body2 = "";
-var req1 = client.request("/1")
-req1.end();
-req1.addListener('response', function (res1) {
- res1.setBodyEncoding("utf8");
+server.addListener("listening", function() {
+ var client = http.createClient(common.PORT);
- res1.addListener('data', function (chunk) {
- body1 += chunk;
- });
+ var req1 = client.request("/1")
+ req1.end();
+ req1.addListener('response', function (res1) {
+ res1.setEncoding("utf8");
+
+ res1.addListener('data', function (chunk) {
+ body1 += chunk;
+ });
- res1.addListener('end', function () {
- var req2 = client.request("/2");
- req2.end();
- req2.addListener('response', function (res2) {
- res2.setBodyEncoding("utf8");
- res2.addListener('data', function (chunk) { body2 += chunk; });
- res2.addListener('end', function () { server.close(); });
+ res1.addListener('end', function () {
+ var req2 = client.request("/2");
+ req2.end();
+ req2.addListener('response', function (res2) {
+ res2.setEncoding("utf8");
+ res2.addListener('data', function (chunk) { body2 += chunk; });
+ res2.addListener('end', function () { server.close(); });
+ });
});
});
});
var server = http.createServer(function(req, res) {
assert.equal("POST", req.method);
- req.setBodyEncoding("utf8");
+ req.setEncoding("utf8");
req.addListener('data', function (chunk) {
console.log("server got: " + JSON.stringify(chunk));
});
server.listen(common.PORT);
-var client = http.createClient(common.PORT);
-var req = client.request('POST', '/');
-req.write('1\n');
-req.write('2\n');
-req.write('3\n');
-req.end();
-
-common.error("client finished sending request");
-
-req.addListener('response', function(res) {
- res.setEncoding("utf8");
- res.addListener('data', function(chunk) {
- console.log(chunk);
- });
- res.addListener('end', function() {
- client_res_complete = true;
- server.close();
+server.addListener("listening", function() {
+ var client = http.createClient(common.PORT);
+ var req = client.request('POST', '/');
+ req.write('1\n');
+ req.write('2\n');
+ req.write('3\n');
+ req.end();
+
+ common.error("client finished sending request");
+
+ req.addListener('response', function(res) {
+ res.setEncoding("utf8");
+ res.addListener('data', function(chunk) {
+ console.log(chunk);
+ });
+ res.addListener('end', function() {
+ client_res_complete = true;
+ server.close();
+ });
});
});
});
server.listen(common.PORT);
-responseComplete = false;
+var responseComplete = false;
-var req = http.createClient(common.PORT).request('HEAD', '/')
-common.error('req');
-req.end();
-req.addListener('response', function (res) {
- common.error('response');
- res.addListener('end', function() {
- common.error('response end');
- server.close();
- responseComplete = true;
+server.addListener("listening", function() {
+ var req = http.createClient(common.PORT).request('HEAD', '/')
+ common.error('req');
+ req.end();
+ req.addListener('response', function (res) {
+ common.error('response');
+ res.addListener('end', function() {
+ common.error('response end');
+ server.close();
+ responseComplete = true;
+ });
});
});
nrequests_completed = 0;
nrequests_expected = 1;
-var s = http.createServer(function (req, res) {
+var server = http.createServer(function (req, res) {
console.log("req: " + JSON.stringify(url.parse(req.url)));
res.writeHead(200, {"Content-Type": "text/plain"});
res.write("Hello World");
res.end();
- if (++nrequests_completed == nrequests_expected) s.close();
+ if (++nrequests_completed == nrequests_expected) server.close();
});
-s.listen(common.PORT);
+server.listen(common.PORT);
-var c = net.createConnection(common.PORT);
-c.addListener("connect", function () {
- c.write("GET /hello?foo=%99bar HTTP/1.1\r\n\r\n");
- c.end();
-});
+server.addListener("listening", function() {
+ var c = net.createConnection(common.PORT);
+ c.addListener("connect", function () {
+ c.write("GET /hello?foo=%99bar HTTP/1.1\r\n\r\n");
+ c.end();
+ });
-// TODO add more!
+ // TODO add more!
+});
process.addListener("exit", function () {
assert.equal(nrequests_expected, nrequests_completed);
req.addListener('response', function (res) {
common.debug("got res");
assert.equal(200, res.statusCode);
- res.setBodyEncoding("utf8");
+ res.setEncoding("utf8");
res.addListener('data', function (chunk) { body += chunk; });
res.addListener('end', function () {
proxy.close();
var server_response = "";
var client_got_eof = false;
-http.createServer(function (req, res) {
+var server = http.createServer(function (req, res) {
res.id = request_number;
req.id = request_number++;
res.end();
}, 1);
-}).listen(common.PORT);
+});
+server.listen(common.PORT);
-var c = net.createConnection(common.PORT);
+server.addListener("listening", function() {
+ var c = net.createConnection(common.PORT);
-c.setEncoding("utf8");
+ c.setEncoding("utf8");
-c.addListener("connect", function () {
- c.write( "GET /hello?hello=world&foo=b==ar HTTP/1.1\r\n\r\n" );
- requests_sent += 1;
-});
+ c.addListener("connect", function () {
+ c.write( "GET /hello?hello=world&foo=b==ar HTTP/1.1\r\n\r\n" );
+ requests_sent += 1;
+ });
-c.addListener("data", function (chunk) {
- server_response += chunk;
+ c.addListener("data", function (chunk) {
+ server_response += chunk;
- if (requests_sent == 1) {
- c.write("POST /quit HTTP/1.1\r\n\r\n");
- requests_sent += 1;
- }
+ if (requests_sent == 1) {
+ c.write("POST /quit HTTP/1.1\r\n\r\n");
+ requests_sent += 1;
+ }
- if (requests_sent == 2) {
- c.write("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.end();
- assert.equal(c.readyState, "readOnly");
- requests_sent += 2;
- }
+ if (requests_sent == 2) {
+ c.write("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.end();
+ assert.equal(c.readyState, "readOnly");
+ requests_sent += 2;
+ }
-});
+ });
-c.addListener("end", function () {
- client_got_eof = true;
-});
+ c.addListener("end", function () {
+ client_got_eof = true;
+ });
-c.addListener("close", function () {
- assert.equal(c.readyState, "closed");
+ c.addListener("close", function () {
+ assert.equal(c.readyState, "closed");
+ });
});
process.addListener("exit", function () {
var peerDN = JSON.stringify(req.connection.getPeerCertificate());
assert.equal(verified, true);
assert.equal(peerDN, '{"subject":"/C=UK/ST=Acknack Ltd/L=Rhys Jones'
- + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
- + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
- + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
- + '"Nov 11 09:52:22 2009 GMT","valid_to":'
- + '"Nov 6 09:52:22 2029 GMT"}');
+ + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
+ + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
+ + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
+ + '"Nov 11 09:52:22 2009 GMT","valid_to":'
+ + '"Nov 6 09:52:22 2029 GMT"}');
if (req.id == 0) {
assert.equal("GET", req.method);
https_server.setSecure(credentials);
https_server.listen(common.PORT);
-var c = net.createConnection(common.PORT);
-
-c.setEncoding("utf8");
+https_server.addListener("listening", function() {
+ var c = net.createConnection(common.PORT);
+
+ c.setEncoding("utf8");
+
+ c.addListener("connect", function () {
+ c.setSecure(credentials);
+ });
+
+ c.addListener("secure", function () {
+ var verified = c.verifyPeer();
+ var peerDN = JSON.stringify(c.getPeerCertificate());
+ assert.equal(verified, true);
+ assert.equal(peerDN, '{"subject":"/C=UK/ST=Acknack Ltd/L=Rhys Jones'
+ + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
+ + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
+ + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
+ + '"Nov 11 09:52:22 2009 GMT","valid_to":'
+ + '"Nov 6 09:52:22 2029 GMT"}');
+ c.write( "GET /hello?hello=world&foo=b==ar HTTP/1.1\r\n\r\n" );
+ requests_sent += 1;
+ });
-c.addListener("connect", function () {
- c.setSecure(credentials);
-});
+ c.addListener("data", function (chunk) {
+ server_response += chunk;
-c.addListener("secure", function () {
- var verified = c.verifyPeer();
- var peerDN = JSON.stringify(c.getPeerCertificate());
- assert.equal(verified, true);
- assert.equal(peerDN, '{"subject":"/C=UK/ST=Acknack Ltd/L=Rhys Jones'
- + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
- + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
- + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
- + '"Nov 11 09:52:22 2009 GMT","valid_to":'
- + '"Nov 6 09:52:22 2029 GMT"}');
- c.write( "GET /hello?hello=world&foo=b==ar HTTP/1.1\r\n\r\n" );
- requests_sent += 1;
-});
+ if (requests_sent == 1) {
+ c.write("POST /quit HTTP/1.1\r\n\r\n");
+ requests_sent += 1;
+ }
-c.addListener("data", function (chunk) {
- server_response += chunk;
+ if (requests_sent == 2) {
+ c.write("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.end();
+ assert.equal(c.readyState, "readOnly");
+ requests_sent += 2;
+ }
- if (requests_sent == 1) {
- c.write("POST /quit HTTP/1.1\r\n\r\n");
- requests_sent += 1;
- }
+ });
- if (requests_sent == 2) {
- c.write("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.end();
- assert.equal(c.readyState, "readOnly");
- requests_sent += 2;
- }
-
-});
-
-c.addListener("end", function () {
- client_got_eof = true;
-});
+ c.addListener("end", function () {
+ client_got_eof = true;
+ });
-c.addListener("close", function () {
- assert.equal(c.readyState, "closed");
+ c.addListener("close", function () {
+ assert.equal(c.readyState, "closed");
+ });
});
process.addListener("exit", function () {
res.write("hello ");
res.write("world\n");
res.end();
-})
+});
server.listen(common.PORT);
-var c = net.createConnection(common.PORT);
+server.addListener("listening", function() {
+ var c = net.createConnection(common.PORT);
-c.setEncoding("utf8");
+ c.setEncoding("utf8");
-c.addListener("connect", function () {
- c.write("GET / HTTP/1.0\r\n" +
- "Connection: Keep-Alive\r\n\r\n");
-});
+ c.addListener("connect", function () {
+ c.write("GET / HTTP/1.0\r\n" +
+ "Connection: Keep-Alive\r\n\r\n");
+ });
-c.addListener("data", function (chunk) {
- console.log(chunk);
- server_response += chunk;
-});
+ c.addListener("data", function (chunk) {
+ console.log(chunk);
+ server_response += chunk;
+ });
-c.addListener("end", function () {
- client_got_eof = true;
- console.log('got end');
- c.end();
-});
+ c.addListener("end", function () {
+ client_got_eof = true;
+ console.log('got end');
+ c.end();
+ });
-c.addListener("close", function () {
- connection_was_closed = true;
- console.log('got close');
- server.close();
+ c.addListener("close", function () {
+ connection_was_closed = true;
+ console.log('got close');
+ server.close();
+ });
});
process.addListener("exit", function () {
var body0 = "";
var body1 = "";
-http.createServer(function (req, res) {
+var server = http.createServer(function (req, res) {
if (responses_sent == 0) {
assert.equal("GET", req.method);
assert.equal("/hello", url.parse(req.url).pathname);
});
//assert.equal("127.0.0.1", res.connection.remoteAddress);
-}).listen(common.PORT);
-
-var client = http.createClient(common.PORT);
-var req = client.request("/hello", {"Accept": "*/*", "Foo": "bar"});
-req.end();
-req.addListener('response', function (res) {
- assert.equal(200, res.statusCode);
- responses_recvd += 1;
- res.setEncoding("utf8");
- res.addListener('data', function (chunk) { body0 += chunk; });
- common.debug("Got /hello response");
});
+server.listen(common.PORT);
-setTimeout(function () {
- req = client.request("POST", "/world");
+server.addListener("listening", function() {
+ var client = http.createClient(common.PORT);
+ var req = client.request("/hello", {"Accept": "*/*", "Foo": "bar"});
req.end();
- req.addListener('response',function (res) {
+ req.addListener('response', function (res) {
assert.equal(200, res.statusCode);
responses_recvd += 1;
- res.setBodyEncoding("utf8");
- res.addListener('data', function (chunk) { body1 += chunk; });
- common.debug("Got /world response");
+ res.setEncoding("utf8");
+ res.addListener('data', function (chunk) { body0 += chunk; });
+ common.debug("Got /hello response");
});
-}, 1);
+
+ setTimeout(function () {
+ req = client.request("POST", "/world");
+ req.end();
+ req.addListener('response',function (res) {
+ assert.equal(200, res.statusCode);
+ responses_recvd += 1;
+ res.setEncoding("utf8");
+ res.addListener('data', function (chunk) { body1 += chunk; });
+ common.debug("Got /world response");
+ });
+ }, 1);
+});
process.addListener("exit", function () {
common.debug("responses_recvd: " + responses_recvd);
echoServer.listen(common.PORT);
var recv = "";
-var j = 0;
-var c = tcp.createConnection(common.PORT);
+echoServer.addListener("listening", function() {
+ var j = 0;
+ var c = tcp.createConnection(common.PORT);
-c.setEncoding("binary");
-c.addListener("data", function (chunk) {
- if (j < 256) {
- common.error("write " + j);
- c.write(String.fromCharCode(j), "binary");
- j++;
- } else {
- c.end();
- }
- recv += chunk;
-});
+ c.setEncoding("binary");
+ c.addListener("data", function (chunk) {
+ if (j < 256) {
+ common.error("write " + j);
+ c.write(String.fromCharCode(j), "binary");
+ j++;
+ } else {
+ c.end();
+ }
+ recv += chunk;
+ });
-c.addListener("connect", function () {
- c.write(binaryString, "binary");
-});
+ c.addListener("connect", function () {
+ c.write(binaryString, "binary");
+ });
-c.addListener("close", function () {
- p(recv);
- echoServer.close();
+ c.addListener("close", function () {
+ p(recv);
+ echoServer.close();
+ });
});
process.addListener("exit", function () {
});
echoServer.listen(common.PORT);
-var clientConnection = net.createConnection(common.PORT);
-clientConnection.setTimeout(0);
-
-setTimeout( function() {
- // make sure both connections are still open
- assert.equal(serverConnection.readyState,"open");
- assert.equal(clientConnection.readyState,"open");
- serverConnection.end();
- clientConnection.end();
- echoServer.close();
-}, 1200);
+echoServer.addListener("listening", function() {
+ var clientConnection = net.createConnection(common.PORT);
+ clientConnection.setTimeout(0);
+ setTimeout( function() {
+ // make sure both connections are still open
+ assert.equal(serverConnection.readyState,"open");
+ assert.equal(clientConnection.readyState,"open");
+ serverConnection.end();
+ clientConnection.end();
+ echoServer.close();
+ }, 1200);
+});
\ No newline at end of file
var peerDN = JSON.stringify(connection.getPeerCertificate());
assert.equal(verified, true);
assert.equal(peerDN, '{"subject":"/C=UK/ST=Acknack Ltd/L=Rhys Jones'
- + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
- + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
- + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
- + '"Nov 11 09:52:22 2009 GMT","valid_to":'
- + '"Nov 6 09:52:22 2029 GMT"}');
+ + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
+ + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
+ + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
+ + '"Nov 11 09:52:22 2009 GMT","valid_to":'
+ + '"Nov 6 09:52:22 2029 GMT"}');
});
});
secureServer.listen(common.PORT);
-var secureClient = net.createConnection(common.PORT);
+secureServer.addListener("listening", function() {
+ var secureClient = net.createConnection(common.PORT);
-secureClient.setEncoding("UTF8");
-secureClient.addListener("connect", function () {
- secureClient.setSecure(credentials);
-});
+ secureClient.setEncoding("UTF8");
+ secureClient.addListener("connect", function () {
+ secureClient.setSecure(credentials);
+ });
-secureClient.addListener("secure", function () {
- gotSecureClient = true;
- var verified = secureClient.verifyPeer();
- var peerDN = JSON.stringify(secureClient.getPeerCertificate());
- assert.equal(verified, true);
- assert.equal(peerDN, '{"subject":"/C=UK/ST=Acknack Ltd/L=Rhys Jones'
- + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
- + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
- + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
- + '"Nov 11 09:52:22 2009 GMT","valid_to":'
- + '"Nov 6 09:52:22 2029 GMT"}');
-
- secureClient.write(testData);
- secureClient.end();
-});
+ secureClient.addListener("secure", function () {
+ gotSecureClient = true;
+ var verified = secureClient.verifyPeer();
+ var peerDN = JSON.stringify(secureClient.getPeerCertificate());
+ assert.equal(verified, true);
+ assert.equal(peerDN, '{"subject":"/C=UK/ST=Acknack Ltd/L=Rhys Jones'
+ + '/O=node.js/OU=Test TLS Certificate/CN=localhost",'
+ + '"issuer":"/C=UK/ST=Acknack Ltd/L=Rhys Jones/O=node.js'
+ + '/OU=Test TLS Certificate/CN=localhost","valid_from":'
+ + '"Nov 11 09:52:22 2009 GMT","valid_to":'
+ + '"Nov 6 09:52:22 2029 GMT"}');
+
+ secureClient.write(testData);
+ secureClient.end();
+ });
-secureClient.addListener("data", function (chunk) {
- clientData += chunk;
-});
+ secureClient.addListener("data", function (chunk) {
+ clientData += chunk;
+ });
-secureClient.addListener("end", function () {
- assert.equal(clientData, testData);
+ secureClient.addListener("end", function () {
+ assert.equal(clientData, testData);
+ });
});
process.addListener("exit", function () {
assert.ok(gotSecureServer, "Did not get secure event for server");
assert.ok(gotSecureClient, "Did not get secure event for clientr");
-});
-
-
+});
\ No newline at end of file