From 2a1881db2057947c16cd85b889f0d53b75cd3af3 Mon Sep 17 00:00:00 2001 From: shockrah Date: Tue, 27 Apr 2021 13:24:59 -0700 Subject: [PATCH] + Adding commandline parameter parser for specifying wss-hmac and api-hmac The respective flags are -w|--wss-hmac and -H|--hmac Default values are wss-hmac.secre hmac.secrett respectively --- rtc-server/auth.js | 9 +++++++-- rtc-server/cmdline.js | 19 +++++++++++++++++++ rtc-server/main.js | 1 + rtc-server/package.json | 2 +- 4 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 rtc-server/cmdline.js diff --git a/rtc-server/auth.js b/rtc-server/auth.js index f4b45d3..e036c2d 100644 --- a/rtc-server/auth.js +++ b/rtc-server/auth.js @@ -4,8 +4,13 @@ const IncomingMessage = require('http').IncomingMessage const url = require('url') const query = require('querystring') -const SERVER_HMAC = fs.readFileSync('wss-hmac.secret') -const USER_HMAC = fs.readFileSync('hmac.secret') +const SERVER_HMAC = (process.env['WSS_HMAC']) + ? fs.readFileSync(process.env['WSS_HMAC']) + : fs.readFileSync('./wss-hmac.secret') + +const USER_HMAC = (process.env['HMAC']) + ? fs.readFileSync(process.env['HMAC']) + : fs.readFileSync('./hmac.secret') exports.verify = function(token) { diff --git a/rtc-server/cmdline.js b/rtc-server/cmdline.js new file mode 100644 index 0000000..00ab3f7 --- /dev/null +++ b/rtc-server/cmdline.js @@ -0,0 +1,19 @@ +const argparse = require('argparse') + +// Command line parsing first +const parser = new argparse.ArgumentParser({ + description: 'RTC Server Component for freechat' +}) +parser.add_argument('-w', '--wss-hmac', { help: 'Set the path for the websocket hmac'}) +parser.add_argument('-H', '--hmac', { help: 'Set the path for the API-server hmac'}) +const args = parser.parse_args() + +// hmac paths are set/overridden through the commandline parameters +console.log(args) +if(args['wss_hmac'] != undefined) { + process.env['WSS_HMAC'] = args['wss_hmac'] +} +if(args['hmac'] != undefined) { + process.env['HMAC'] = args['hmac'] +} + diff --git a/rtc-server/main.js b/rtc-server/main.js index 52f543f..d52d513 100644 --- a/rtc-server/main.js +++ b/rtc-server/main.js @@ -1,4 +1,5 @@ const ws = require('ws') +const _ = require('./cmdline.js') // initializing the command line params first const auth = require('./auth.js') const server = new ws.Server({ diff --git a/rtc-server/package.json b/rtc-server/package.json index 1411319..0915048 100644 --- a/rtc-server/package.json +++ b/rtc-server/package.json @@ -5,7 +5,7 @@ "main": "main.js", "scripts": { "start": "node main.js", - "test": "echo \"Error: no test specified\" && exit 1" + "autotest": "node main.js -H ../hmac.secret -w ../wss-hmac.secret" }, "repository": { "type": "git",