@@ -127,6 +127,7 @@ class SinricProClass : public SinricProInterface {
127127 void handleDeviceRequest (JsonDocument& requestMessage, interface_t Interface);
128128 void handleModuleRequest (JsonDocument& requestMessage, interface_t Interface);
129129 void handleResponse (JsonDocument& responseMessage);
130+ void handleInvalidSignatureRequest (JsonDocument& requestMessage, interface_t Interface);
130131
131132 JsonDocument prepareRequest (String deviceId, const char * action);
132133
@@ -327,7 +328,7 @@ void SinricProClass::handleResponse(JsonDocument& responseMessage) {
327328}
328329
329330void SinricProClass::handleModuleRequest (JsonDocument& requestMessage, interface_t Interface) {
330- DEBUG_SINRIC (" [SinricPro.handleModuleScopeRequest()]: handling device sope request\r\n " );
331+ DEBUG_SINRIC (" [SinricPro.handleModuleScopeRequest()]: handling module scope request\r\n " );
331332#ifndef NODEBUG_SINRIC
332333 serializeJsonPretty (requestMessage, DEBUG_ESP_PORT);
333334#endif
@@ -434,13 +435,28 @@ void SinricProClass::handleReceiveQueue() {
434435 }
435436 };
436437 } else {
437- DEBUG_SINRIC (" [SinricPro.handleReceiveQueue()]: Signature is invalid! \r\n " );
438- if (messageType == FSTR_SINRICPRO_request) handleDeviceRequest (jsonMessage, rawMessage->getInterface ());
438+ handleInvalidSignatureRequest (jsonMessage, rawMessage->getInterface ());
439439 }
440440 delete rawMessage;
441441 }
442442}
443443
444+ void SinricProClass::handleInvalidSignatureRequest (JsonDocument& requestMessage, interface_t Interface) {
445+ DEBUG_SINRIC (" [SinricPro.handleInvalidSignatureRequest()]: Signature is invalid!\r\n " );
446+
447+ #ifndef NODEBUG_SINRIC
448+ serializeJsonPretty (requestMessage, DEBUG_ESP_PORT);
449+ #endif
450+
451+ JsonDocument responseMessage = prepareResponse (requestMessage);
452+ responseMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_success] = false ;
453+ responseMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_message] = " Signature is invalid" ;
454+
455+ String responseString;
456+ serializeJson (responseMessage, responseString);
457+ sendQueue.push (new SinricProMessage (Interface, responseString.c_str ()));
458+ }
459+
444460void SinricProClass::handleSendQueue () {
445461 if (!isConnected ()) return ;
446462 if (!timestamp.getTimestamp ()) return ;
0 commit comments