+// Start up a weblistener for each found in the config
+_.each(global.config.servers, function (server) {
+ var wl = new WebListener(server, global.config.transports);
+
+ wl.on('connection', function (client) {
+ clients.add(client);
+ });
+
+ wl.on('client_dispose', function (client) {
+ clients.remove(client);
+ });
+
+ 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
+var num_listening = 0;
+function webListenerRunning() {
+ num_listening++;
+ if (num_listening === global.config.servers.length) {
+ setProcessUid();
+ }
+}