Support for binding to specific host
authorJack Allnutt <m2ys4u@Gmail.com>
Mon, 18 Jul 2011 16:16:42 +0000 (17:16 +0100)
committerJack Allnutt <m2ys4u@Gmail.com>
Mon, 18 Jul 2011 16:16:42 +0000 (17:16 +0100)
node/config.json
node/kiwi.js

index 580c19ef873188faf3c4766b9620d863671571d4..66b6c2be94bbe20c65a91bcdd33246ff86f1f181 100644 (file)
@@ -1,8 +1,9 @@
 {
-    "port":           7777,
-    "listen_ssl":     false,
-    "ssl_key":        "server.key",
-    "ssl_cert":       "cert.pem",
-    "quit_message":   "KiwiIRC",
-    "cap_options":    []
+    "port":             7777,
+    "bind_address":     "0.0.0.0",
+    "listen_ssl":       false,
+    "ssl_key":          "server.key",
+    "ssl_cert":         "cert.pem",
+    "quit_message":     "KiwiIRC",
+    "cap_options":      []
 }
index cdc70f2031474ec18d73490676ce49759564a74d..3e583aeeede7f6b143dbfc51c3320939cbd1c4ac 100644 (file)
@@ -3,6 +3,7 @@
 var tls = require('tls'),
     net = require('net'),
     http = require('http'),
+    https = require('https'),
     fs = require('fs'),
     ws = require('socket.io'),
     _ = require('./lib/underscore.min.js'),
@@ -272,9 +273,13 @@ var ircSocketDataHandler = function (data, websocket, ircSocket) {
 
 //setup websocket listener
 if (config.listen_ssl) {
-    var io = ws.listen(config.port, {secure: true, key: fs.readFileSync(__dirname + '/' + config.ssl_key), cert: fs.readFileSync(__dirname + '/' + config.ssl_cert)});
+    var httpServer = https.createServer({key: fs.readFileSync(__dirname + '/' + config.ssl_key), cert: fs.readFileSync(__dirname + '/' + config.ssl_cert)});
+    var io = ws.listen(httpServer, {secure: true});
+    httpServer.listen(config.port, config.bind_address);
 } else {
-    var io = ws.listen(config.port, {secure: false});
+    var httpServer = http.createServer();
+    var io = ws.listen(httpServer, {secure: false});
+    httpServer.listen(config.port, config.bind_address);
 }
 io.sockets.on('connection', function (websocket) {
     websocket.on('irc connect', function (nick, host, port, ssl, callback) {