Browse Source

Expose errno with a string.

v0.7.4-release
Ryan Dahl 14 years ago
parent
commit
aa95e5708f
  1. 2
      doc/api/net.markdown
  2. 3
      src/node.cc
  3. 1
      test/simple/test-net-connect-handle-econnrefused.js

2
doc/api/net.markdown

@ -70,7 +70,7 @@ another server is already running on the requested port. One way of handling thi
would be to wait a second and the try again. This can be done with would be to wait a second and the try again. This can be done with
server.on('error', function (e) { server.on('error', function (e) {
if (e.errno == require('constants').EADDRINUSE) { if (e.code == 'EADDRINUSE') {
console.log('Address in use, retrying...'); console.log('Address in use, retrying...');
setTimeout(function () { setTimeout(function () {
server.close(); server.close();

3
src/node.cc

@ -71,6 +71,7 @@ static Persistent<Object> process;
static Persistent<String> errno_symbol; static Persistent<String> errno_symbol;
static Persistent<String> syscall_symbol; static Persistent<String> syscall_symbol;
static Persistent<String> errpath_symbol; static Persistent<String> errpath_symbol;
static Persistent<String> code_symbol;
static Persistent<String> rss_symbol; static Persistent<String> rss_symbol;
static Persistent<String> vsize_symbol; static Persistent<String> vsize_symbol;
@ -1021,6 +1022,7 @@ Local<Value> ErrnoException(int errorno,
syscall_symbol = NODE_PSYMBOL("syscall"); syscall_symbol = NODE_PSYMBOL("syscall");
errno_symbol = NODE_PSYMBOL("errno"); errno_symbol = NODE_PSYMBOL("errno");
errpath_symbol = NODE_PSYMBOL("path"); errpath_symbol = NODE_PSYMBOL("path");
code_symbol = NODE_PSYMBOL("code");
} }
if (path) { if (path) {
@ -1035,6 +1037,7 @@ Local<Value> ErrnoException(int errorno,
Local<Object> obj = e->ToObject(); Local<Object> obj = e->ToObject();
obj->Set(errno_symbol, Integer::New(errorno)); obj->Set(errno_symbol, Integer::New(errorno));
obj->Set(code_symbol, estring);
if (path) obj->Set(errpath_symbol, String::New(path)); if (path) obj->Set(errpath_symbol, String::New(path));
if (syscall) obj->Set(syscall_symbol, String::NewSymbol(syscall)); if (syscall) obj->Set(syscall_symbol, String::NewSymbol(syscall));
return e; return e;

1
test/simple/test-net-connect-handle-econnrefused.js

@ -16,6 +16,7 @@ c.on('error', function(e) {
console.error('couldn\'t connect.'); console.error('couldn\'t connect.');
gotError = true; gotError = true;
assert.equal(require('constants').ECONNREFUSED, e.errno); assert.equal(require('constants').ECONNREFUSED, e.errno);
assert.equal('ECONNREFUSED', e.code);
}); });

Loading…
Cancel
Save