Browse Source

If http.Client has an error, do not continue to reconnect.

v0.7.4-release
Ryan 16 years ago
parent
commit
c457b829e2
  1. 8
      src/http.js
  2. 4
      test_client.js

8
src/http.js

@ -321,6 +321,7 @@ node.http.Server = function (RequestHandler, options) {
node.http.Client = function (port, host) { node.http.Client = function (port, host) {
var connection = new node.http.LowLevelClient(); var connection = new node.http.LowLevelClient();
var requests = []; var requests = [];
var self = this;
function ClientRequest (method, uri, header_lines) { function ClientRequest (method, uri, header_lines) {
@ -403,7 +404,12 @@ node.http.Client = function (port, host) {
requests[0].flush(); requests[0].flush();
}; };
connection.onDisconnect = function () { connection.onDisconnect = function (had_error) {
if (had_error) {
if (self.onError) self.onError();
return;
}
//node.debug("HTTP CLIENT: disconnect"); //node.debug("HTTP CLIENT: disconnect");
// If there are more requests to handle, reconnect. // If there are more requests to handle, reconnect.
if (requests.length > 0) { if (requests.length > 0) {

4
test_client.js

@ -1,5 +1,9 @@
var c = new node.http.Client(8000, "127.0.0.1"); var c = new node.http.Client(8000, "127.0.0.1");
c.onError = function () {
puts("http client connection error.");
};
var req = c.get("/bytes/123", [["Accept", "*/*"]]); var req = c.get("/bytes/123", [["Accept", "*/*"]]);
req.finish(function (res) { req.finish(function (res) {
puts("response 1: " + res.statusCode.toString()); puts("response 1: " + res.statusCode.toString());

Loading…
Cancel
Save