From f108987bf624b4f9ae84cc2010cfd6907936297e Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Tue, 8 Oct 2019 01:26:07 +0200 Subject: [PATCH] ping: Added endpoint for register new fqdn's - Added environment variable REGISTER_PASS for authorize register - Added endpoint /:fqdn/:code/:pass for register new fqdn's --- libs/configuration.js | 1 + routes/ping.js | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/libs/configuration.js b/libs/configuration.js index f945c5c..db423a2 100644 --- a/libs/configuration.js +++ b/libs/configuration.js @@ -6,4 +6,5 @@ module.exports = { password: process.env.DATABASE_PASSWORD, database: process.env.DATABASE_NAME, }, + registerPass: process.env.REGISTER_PASS, }; diff --git a/routes/ping.js b/routes/ping.js index 3e826cf..f065901 100644 --- a/routes/ping.js +++ b/routes/ping.js @@ -1,10 +1,12 @@ let express = require("express"); let ipaddr = require("ipaddr.js"); let moment = require("moment"); +let conf = require("../libs/configuration"); let db = require("../libs/Database").instance(); let router = express.Router(); const IP_TYPES = ["ipv4", "ipv6"]; +const REGISTER_PASS = conf.registerPass; function combineToList(a, b) { return a + "\n" + b; @@ -52,4 +54,17 @@ router.get("/:fqdn/:code", testIP, (req, res) => { }); }); +router.get("/:fqdn/:code/:pass", (req, res) => { + const pass = req.params.pass; + const fqdn = req.params.fqdn; + const code = req.params.code; + if (REGISTER_PASS === "" || pass !== REGISTER_PASS) return res.status(403).send("Invalid token"); + db.query("INSERT INTO addresses SET fqdn = ?, code = ? ON DUPLICATE KEY UPDATE code = ?", [fqdn, code, code], (e, d) => { + if (e) return res.status(400).send("Error"); + if (d.insertId <= 0) return res.send("Already registered"); + if (d.affectedRows >= 2) return res.send("Successful changed code"); + res.send("Successful registered"); + }) +}); + module.exports = router;