From 21a812d3d6cf01c5b3547d56db028c58b5f7ed3b Mon Sep 17 00:00:00 2001 From: Gordon Stein <7331488+gsteinLTU@users.noreply.github.com> Date: Mon, 1 Apr 2024 17:44:33 -0500 Subject: [PATCH] Allow "lite" announce --- src/procedures/iotscape/iotscape-services.js | 12 ++++++------ src/procedures/iotscape/iotscape.js | 11 +++++++++-- src/procedures/iotscape/routes.js | 2 +- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/procedures/iotscape/iotscape-services.js b/src/procedures/iotscape/iotscape-services.js index d4b6ca0e..b955407b 100644 --- a/src/procedures/iotscape/iotscape-services.js +++ b/src/procedures/iotscape/iotscape-services.js @@ -24,7 +24,12 @@ IoTScapeServices.updateOrCreateServiceInfo = function ( let service = IoTScapeDevices._services[name]; IoTScapeServices._serviceDefinitions[name] = definition; - if(!rinfo) { + if (!service) { + // Service not added yet + service = IoTScapeDevices._services[name] = {}; + } + + if (!rinfo) { logger.log("Service " + name + " created without connection info"); return; } @@ -34,11 +39,6 @@ IoTScapeServices.updateOrCreateServiceInfo = function ( rinfo.port, ); - if (!service) { - // Service not added yet - service = IoTScapeDevices._services[name] = {}; - } - service[id] = rinfo; }; diff --git a/src/procedures/iotscape/iotscape.js b/src/procedures/iotscape/iotscape.js index 3e8a2771..4a3732f8 100644 --- a/src/procedures/iotscape/iotscape.js +++ b/src/procedures/iotscape/iotscape.js @@ -174,7 +174,13 @@ IoTScape._send = function (service, id, command, caller) { * @param {RemoteInfo} remote Remote host information */ IoTScape._createService = async function (definition, remote = null) { + let parsed = null; + + // Handle buffer input + if (Buffer.isBuffer(definition)) { + definition = definition.toString(); + } if (typeof definition === "string") { try { @@ -194,9 +200,10 @@ IoTScape._createService = async function (definition, remote = null) { const name = Object.keys(parsed)[0]; parsed = parsed[name]; - + // Verify service definition is in message if (typeof (parsed.service) == "undefined") { + logger.log("Service definition not found in message"); return; } @@ -269,7 +276,7 @@ IoTScape._createService = async function (definition, remote = null) { } else { logger.log(`Service ${name} already exists and is up to date`); } - IoTScapeServices.updateOrCreateServiceInfo(name, parsed, id, remote); + IoTScapeServices.updateOrCreateServiceInfo(name, service, id, remote); }; /** diff --git a/src/procedures/iotscape/routes.js b/src/procedures/iotscape/routes.js index d1bf0291..ae468ba9 100644 --- a/src/procedures/iotscape/routes.js +++ b/src/procedures/iotscape/routes.js @@ -21,6 +21,6 @@ router.post( IoTScape._createService(req.body); res.status(200).send("OK"); }, -) +); module.exports = router;