@@ -127,6 +127,7 @@ class SinricProClass : public SinricProInterface {
127
127
void handleDeviceRequest (JsonDocument& requestMessage, interface_t Interface);
128
128
void handleModuleRequest (JsonDocument& requestMessage, interface_t Interface);
129
129
void handleResponse (JsonDocument& responseMessage);
130
+ void handleInvalidSignatureRequest (JsonDocument& requestMessage, interface_t Interface);
130
131
131
132
JsonDocument prepareRequest (String deviceId, const char * action);
132
133
@@ -327,7 +328,7 @@ void SinricProClass::handleResponse(JsonDocument& responseMessage) {
327
328
}
328
329
329
330
void 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 " );
331
332
#ifndef NODEBUG_SINRIC
332
333
serializeJsonPretty (requestMessage, DEBUG_ESP_PORT);
333
334
#endif
@@ -434,13 +435,28 @@ void SinricProClass::handleReceiveQueue() {
434
435
}
435
436
};
436
437
} 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 ());
439
439
}
440
440
delete rawMessage;
441
441
}
442
442
}
443
443
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
+
444
460
void SinricProClass::handleSendQueue () {
445
461
if (!isConnected ()) return ;
446
462
if (!timestamp.getTimestamp ()) return ;
0 commit comments