Show an error when we're unable to bind to an address/port
authorJack Allnutt <m2ys4u@gmail.com>
Sun, 21 Apr 2013 23:39:46 +0000 (00:39 +0100)
committerJack Allnutt <m2ys4u@gmail.com>
Sun, 21 Apr 2013 23:41:22 +0000 (00:41 +0100)
Fixes #213

server/kiwi.js
server/weblistener.js

index 0dc1d491bea0f6152d64f501562e6e4154c2b529..6e697f75a7b306c780af3cc6f3bd003abb455568 100755 (executable)
@@ -172,7 +172,16 @@ _.each(global.config.servers, function (server) {
         clients.remove(client);
     });
 
-    wl.on('listening', webListenerRunning);
+    wl.on('listening', function () {
+        console.log('Listening on %s:%s %s SSL', server.address, server.port, (server.ssl ? 'with' : 'without'));
+        webListenerRunning();
+    });
+
+    wl.on('error', function (err) {
+        console.log('Error listening on %s:%s: %s', server.address, server.port, err.code);
+        // TODO: This should probably be refactored. ^JA
+        webListenerRunning();
+    });
 });
 
 // Once all the listeners are listening, set the processes UID/GID
index 27c8eab0c4596b2b608ddaf978282c73964bd351..80fb2af7e7350a7d4a1f6aa8e25a48641aee7055 100644 (file)
@@ -64,8 +64,6 @@ var WebListener = function (web_config, transports) {
         hs.listen(web_config.port, web_config.address, function () {
             that.emit('listening');
         });
-
-        console.log('Listening on ' + web_config.address + ':' + web_config.port.toString() + ' with SSL');
     } else {
 
         // Start some plain-text server up
@@ -76,9 +74,11 @@ var WebListener = function (web_config, transports) {
         hs.listen(web_config.port, web_config.address, function () {
             that.emit('listening');
         });
-
-        console.log('Listening on ' + web_config.address + ':' + web_config.port.toString() + ' without SSL');
     }
+
+    hs.on('error', function (err) {
+        that.emit('error', err);
+    })
     
     this.ws.enable('browser client minification');
     this.ws.enable('browser client etag');