diff --git a/exec/ircd.js b/exec/ircd.js index 842805b22b18405fa4c60a00f27bba088b53348e..2449fcae2742d5634fe793f916c30dd599095dba 100644 --- a/exec/ircd.js +++ b/exec/ircd.js @@ -852,19 +852,27 @@ function read_conf_config(fname) { } function create_new_socket(port) { + var newsock; + log(LOG_DEBUG,"Creating new socket object on port " + port); - var newsock = new Socket(); - if(!newsock.bind(port,server.interface_ip_address)) { - log(LOG_ERR,"!Error " + newsock.error + " binding socket to TCP port " - + port); - return 0; + if (js.global.ConnectedSocket != undefined) { + newsock = new ListeningSocket(server.interface_ip_address, port, "IRCd"); + log(format("IRC server socket bound to TCP port " + port); } - log(format("%04u ",newsock.descriptor) - + "IRC server socket bound to TCP port " + port); - if(!newsock.listen(5 /* backlog */)) { - log(LOG_ERR,"!Error " + newsock.error - + " setting up socket for listening"); - return 0; + else { + newsock = new Socket(); + if(!newsock.bind(port,server.interface_ip_address)) { + log(LOG_ERR,"!Error " + newsock.error + " binding socket to TCP port " + + port); + return 0; + } + log(format("%04u ",newsock.descriptor) + + "IRC server socket bound to TCP port " + port); + if(!newsock.listen(5 /* backlog */)) { + log(LOG_ERR,"!Error " + newsock.error + + " setting up socket for listening"); + return 0; + } } return newsock; }