diff options
Diffstat (limited to 'api/routes/getRemoteNodeInfo/index.js')
-rw-r--r-- | api/routes/getRemoteNodeInfo/index.js | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/api/routes/getRemoteNodeInfo/index.js b/api/routes/getRemoteNodeInfo/index.js index 6cfff4b..4b766c0 100644 --- a/api/routes/getRemoteNodeInfo/index.js +++ b/api/routes/getRemoteNodeInfo/index.js @@ -6,8 +6,10 @@ const { spawn } = require('child_process'); const config = require("../../config.js"); +const checkIfAllowedIP = require('../../lib/checkIfAllowedIP/index.js'); -module.exports = (req, res) => { +function getRemoteNodeInfo(req, res) +{ var args = req.url.split("/"); var ip = ""; if ( args.length === 4 ) @@ -15,22 +17,19 @@ module.exports = (req, res) => { ip = args[3]; } var test = /^fc[0-9a-z]{1,2}:([0-9a-z]{1,4}:){1,6}[0-9a-z]{1,4}/ - if (test.test(ip)) + if (checkIfAllowedIP(ip)) { const command = spawn("curl", ["--retry-max-time","3","-s",`http://[${ip}]:8610/v0/node_info`]); var buffer = ""; command.stdout.on("data", data => { buffer = buffer + data; }); - command.stderr.on("data", data => { console.log(`stderr: ${data}`); }); - command.on('error', (error) => { console.log(`error: ${error.message}`); }); - command.on("close", code => { res.writeHead(200, { 'Content-Type': 'application/json'}); res.end(buffer); @@ -43,4 +42,4 @@ module.exports = (req, res) => { res.end(JSON.stringify({error:"No IP"})); } } - +module.exports = getRemoteNodeInfo; |