From ec6a2b5ba906565124b8cfc4eaffe1a08bb06d18 Mon Sep 17 00:00:00 2001 From: John McLear Date: Mon, 16 Feb 2015 23:02:19 +0000 Subject: [PATCH] allow for load testing connections to hit by a setting --- settings.json.template | 3 +++ src/node/hooks/express/socketio.js | 8 ++++++-- src/node/utils/Settings.js | 5 +++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/settings.json.template b/settings.json.template index 3f84af9b8..124345e2b 100644 --- a/settings.json.template +++ b/settings.json.template @@ -108,6 +108,9 @@ // restrict socket.io transport methods "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"], + + // Allow Load Testing tools to hit the Etherpad Instance. Warning this will disable security on the instance. + "loadTest": false, /* The toolbar buttons configuration. "toolbar": { diff --git a/src/node/hooks/express/socketio.js b/src/node/hooks/express/socketio.js index b70aa50ed..35d6d074d 100644 --- a/src/node/hooks/express/socketio.js +++ b/src/node/hooks/express/socketio.js @@ -23,8 +23,12 @@ exports.expressCreateServer = function (hook_name, args, cb) { io.use(function(socket, accept) { var data = socket.request; - if (!data.headers.cookie) return accept('No session cookie transmitted.', false); - + // Use a setting if we want to allow load Testing + if(!data.headers.cookie && settings.loadTest){ + accept(null, true); + }else{ + if (!data.headers.cookie) return accept('No session cookie transmitted.', false); + } // Use connect's cookie parser, because it knows how to parse signed cookies connect.cookieParser(webaccess.secret)(data, {}, function(err){ if(err) { diff --git a/src/node/utils/Settings.js b/src/node/utils/Settings.js index 1fb5bddfb..5382d819a 100644 --- a/src/node/utils/Settings.js +++ b/src/node/utils/Settings.js @@ -144,6 +144,11 @@ exports.loglevel = "INFO"; */ exports.disableIPlogging = false; +/** + * Disable Load Testing + */ +exports.loadTest = false; + /* * log4js appender configuration */