From aca7bbc7b0e12a376ce31b3756383197d6bea12f Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Mon, 12 Sep 2016 15:52:56 -0400 Subject: [PATCH] API CHANGE: new action for sysadm/firewall "action":"close" REQUIRED: "ports":["/", ""/""] This will close the designated ports in the firewall REST Request (example): ------------------------------- PUT /sysadm/firewall { "action" : "close", "ports" : [ "12151/tcp" ] } WebSocket Request: ------------------------------- { "id" : "fooid", "namespace" : "sysadm", "name" : "firewall", "args" : { "ports" : [ "12151/tcp" ], "action" : "close" } } Response: ------------------------------- { "args": { "result": "success" }, "id": "fooid", "name": "response", "namespace": "sysadm" } --- src/server/WebBackend.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index 8357c31..1881217 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -1153,6 +1153,23 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmFirewallRequest(const QJsonV FMGR.OpenPort(P); } + }else if(action=="close" && in_args.toObject().contains("ports")){ + //REQUIRED: "ports" = [/, /, etc..] + QJsonValue val = in_args.toObject().value("ports"); + QStringList ports; + QList P; + if(val.isString()){ ports << val.toString(); } + else if(val.isArray()){ ports = JsonArrayToStringList(val.toArray()); } + for(int i=0; i