From ed3296eaf3366a13cc464e222d4fe883eeee255a Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Mon, 12 Sep 2016 15:47:54 -0400 Subject: [PATCH] API CHANGE: New action for sysadm/firewall "action":"open" REQUIRES: "ports":[/, /] REST Request (example): ------------------------------- PUT /sysadm/firewall { "action" : "open", "ports" : [ "12151/tcp" ] } WebSocket Request: ------------------------------- { "namespace" : "sysadm", "name" : "firewall", "args" : { "ports" : [ "12151/tcp" ], "action" : "open" }, "id" : "fooid" } 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 d6ba84c..8357c31 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -1136,6 +1136,23 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmFirewallRequest(const QJsonV out->insert("is_running", FMGR.IsRunning() ? "true" : "false" ); out->insert("is_enabled", FMGR.IsEnabled() ? "true" : "false" ); + }else if(action=="open" && 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