From 61bbcd9251093a6359634f24b49427c72d633786 Mon Sep 17 00:00:00 2001 From: Javier Sánchez Parra Date: Fri, 11 Oct 2019 13:24:57 +0200 Subject: #915 Fix POST "software" cmd in ogAdmServer and web This patch adds the parameters "disk" and "partition" to POST "software" command. This way the client can create a software profile without failure. New request: POST /software { "clients":[ "192.168.56.12" ], "disk":"1", "partition":"1" } Reply: 200 OK --- sources/ogAdmServer.cpp | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'sources') diff --git a/sources/ogAdmServer.cpp b/sources/ogAdmServer.cpp index e2bd4c1..53f46a8 100644 --- a/sources/ogAdmServer.cpp +++ b/sources/ogAdmServer.cpp @@ -3894,9 +3894,11 @@ static int og_cmd_hardware(json_t *element, struct og_msg_params *params) static int og_cmd_software(json_t *element, struct og_msg_params *params) { + char buf[4096] = {}; + int err = 0, len; const char *key; json_t *value; - int err = 0; + TRAMA *msg; if (json_typeof(element) != JSON_OBJECT) return -1; @@ -3904,13 +3906,29 @@ static int og_cmd_software(json_t *element, struct og_msg_params *params) json_object_foreach(element, key, value) { if (!strcmp(key, "clients")) err = og_json_parse_clients(value, params); + else if (!strcmp(key, "disk")) + err = og_json_parse_string(value, ¶ms->disk); + else if (!strcmp(key, "partition")) + err = og_json_parse_string(value, ¶ms->partition); if (err < 0) break; } - return og_cmd_legacy_send(params, "InventarioSoftware", - CLIENTE_OCUPADO); + len = snprintf(buf, sizeof(buf), + "nfn=InventarioSoftware\rdsk=%s\rpar=%s\r", + params->disk, params->partition); + + msg = og_msg_alloc(buf, len); + if (!msg) + return -1; + + og_send_cmd((char **)params->ips_array, params->ips_array_len, + CLIENTE_OCUPADO, msg); + + og_msg_free(msg); + + return 0; } static int og_cmd_create_image(json_t *element, struct og_msg_params *params) -- cgit v1.2.3-18-g5258