Skip to content

Commit

Permalink
net: improve error message when no address
Browse files Browse the repository at this point in the history
when use 'listen(80)' will get the 'listen EACCES null:80'. this fix will
make the error message better. like 'listen EACCES 0.0.0.0:80'.
  • Loading branch information
JacksonTian committed Jan 12, 2015
1 parent 0cca6fe commit 5d7328a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
3 changes: 2 additions & 1 deletion lib/net.js
Original file line number Diff line number Diff line change
Expand Up @@ -1126,7 +1126,7 @@ var createServerHandle = exports._createServerHandle =


Server.prototype._listen2 = function(address, port, addressType, backlog, fd) {
debug('listen2', address, port, addressType, backlog);
debug('listen2', address, port, addressType, backlog, fd);
var self = this;

// If there is not yet a handle, we need to create one and bind.
Expand All @@ -1135,6 +1135,7 @@ Server.prototype._listen2 = function(address, port, addressType, backlog, fd) {
debug('_listen2: create a handle');
var rval = createServerHandle(address, port, addressType, fd);
if (util.isNumber(rval)) {
address = address || '0.0.0.0';
var error = exceptionWithHostPort(rval, 'listen', address, port);
process.nextTick(function() {
self.emit('error', error);
Expand Down
12 changes: 12 additions & 0 deletions test/parallel/test-net-better-error-message-address.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
var common = require('../common');
var assert = require('assert');
var net = require('net');

var server = net.createServer(assert.fail);
server.listen(1, assert.fail);
server.on('error', common.mustCall(function(e) {
assert.equal(e.address, '0.0.0.0');
assert.equal(e.port, 1);
assert.equal(e.syscall, 'listen');
assert.equal(e.message, 'listen EACCES 0.0.0.0:1');
}));

0 comments on commit 5d7328a

Please sign in to comment.