Skip to content
Snippets Groups Projects
Commit e01e475e authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Throw a more helpful exception when no nameservers specified/available

My /etc/resolv.conf was wiped by Network Manager (gee, thanks), so
ircd.js was throwing the following unhelpful exceptions when starting
up:
Feb 25 13:47:51 git jsexec[19108]: !JavaScript : uncaught exception: Unable to create any sockets
Feb 25 13:47:51 git jsexec[19108]: !JavaScript : uncaught exception: Unable to create any sockets

First, instead of throwing a string, throw an Error object so we can
actually know where the exception ocurred. Please, everyone, throw Errors
not Strings.

Second, throw a different more helpful exception if there are no nameservers
specified in the DNS constructor or configured on the system.
parent 8ced4690
No related branches found
No related tags found
No related merge requests found
...@@ -51,6 +51,8 @@ function DNS(synchronous, servers) { ...@@ -51,6 +51,8 @@ function DNS(synchronous, servers) {
if (servers === undefined) if (servers === undefined)
servers = system.name_servers; servers = system.name_servers;
if (!servers || !servers.length)
throw new Error("No nameservers specified in constructor or configured in system");
servers.forEach(function(server) { servers.forEach(function(server) {
var sock = new Socket(SOCK_DGRAM, "dns", server.indexOf(':') >= 0); var sock = new Socket(SOCK_DGRAM, "dns", server.indexOf(':') >= 0);
sock.bind(); sock.bind();
...@@ -63,7 +65,7 @@ function DNS(synchronous, servers) { ...@@ -63,7 +65,7 @@ function DNS(synchronous, servers) {
}, this); }, this);
if (this.sockets.length < 1) if (this.sockets.length < 1)
throw('Unable to create any sockets'); throw new Error('Unable to create any sockets');
this.increment_id = function() { this.increment_id = function() {
var ret = nextid; var ret = nextid;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment