From 0057b006b572f8307ab474a1f4fb3d5709b1f23f Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Mon, 31 Dec 2018 17:57:11 +0100 Subject: [PATCH] ping: Extracted testIP middleware --- routes/ping.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/routes/ping.js b/routes/ping.js index d7d6e8c..9a074e0 100644 --- a/routes/ping.js +++ b/routes/ping.js @@ -13,6 +13,13 @@ function toList(array) { return array.reduce(combineToList, "").trim(); } +function testIP(req, res, next) { + let addr = ipaddr.parse(req.ip); + if (!IP_TYPES.includes(addr.kind())) return res.status(400).send("Invalid ip address"); + req.params.addr = addr; + next(); +} + router.use((req, res, next) => { res.type('text/plain'); next(); @@ -32,9 +39,8 @@ router.get("/:fqdn", (req, res) => { }); }); -router.get("/:fqdn/:code", (req, res) => { - let addr = ipaddr.parse(req.ip); - if (!IP_TYPES.includes(addr.kind())) return res.status(400).send("Invalid ip address"); +router.get("/:fqdn/:code", testIP, (req, res) => { + let addr = req.params.addr; db.query("UPDATE addresses SET " + addr.kind() + " = ? WHERE fqdn = ? AND code = ?", [addr.toString(), req.params.fqdn, req.params.code], (e, d) => { if (e) return res.status(400).send("Error"); res.send(addr.toString());