in source/ota_interface.c [76:147]
OtaErr_t setDataInterface( OtaDataInterface_t * pDataInterface,
const uint8_t * pProtocol )
{
OtaErr_t err = OtaErrInvalidDataProtocol;
bool httpInJobDoc;
bool mqttInJobDoc;
httpInJobDoc = ( strstr( ( const char * ) pProtocol, "\"HTTP\"" ) != NULL ) ? true : false;
mqttInJobDoc = ( strstr( ( const char * ) pProtocol, "\"MQTT\"" ) != NULL ) ? true : false;
#if ( ( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_MQTT ) && !( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_HTTP ) )
( void ) httpInJobDoc;
if( mqttInJobDoc == true )
{
pDataInterface->initFileTransfer = initFileTransfer_Mqtt;
pDataInterface->requestFileBlock = requestFileBlock_Mqtt;
pDataInterface->decodeFileBlock = decodeFileBlock_Mqtt;
pDataInterface->cleanup = cleanupData_Mqtt;
err = OtaErrNone;
}
#elif ( ( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_HTTP ) && !( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_MQTT ) )
( void ) mqttInJobDoc;
if( httpInJobDoc == true )
{
pDataInterface->initFileTransfer = initFileTransfer_Http;
pDataInterface->requestFileBlock = requestDataBlock_Http;
pDataInterface->decodeFileBlock = decodeFileBlock_Http;
pDataInterface->cleanup = cleanupData_Http;
err = OtaErrNone;
}
#else /* if ( ( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_MQTT ) && !( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_HTTP ) ) */
#if ( configOTA_PRIMARY_DATA_PROTOCOL == OTA_DATA_OVER_MQTT )
if( mqttInJobDoc == true )
{
pDataInterface->initFileTransfer = initFileTransfer_Mqtt;
pDataInterface->requestFileBlock = requestFileBlock_Mqtt;
pDataInterface->decodeFileBlock = decodeFileBlock_Mqtt;
pDataInterface->cleanup = cleanupData_Mqtt;
err = OtaErrNone;
}
else if( httpInJobDoc == true )
{
pDataInterface->initFileTransfer = initFileTransfer_Http;
pDataInterface->requestFileBlock = requestDataBlock_Http;
pDataInterface->decodeFileBlock = decodeFileBlock_Http;
pDataInterface->cleanup = cleanupData_Http;
err = OtaErrNone;
}
#elif ( configOTA_PRIMARY_DATA_PROTOCOL == OTA_DATA_OVER_HTTP )
if( httpInJobDoc == true )
{
pDataInterface->initFileTransfer = initFileTransfer_Http;
pDataInterface->requestFileBlock = requestDataBlock_Http;
pDataInterface->decodeFileBlock = decodeFileBlock_Http;
pDataInterface->cleanup = cleanupData_Http;
err = OtaErrNone;
}
else if( mqttInJobDoc == true )
{
pDataInterface->initFileTransfer = initFileTransfer_Mqtt;
pDataInterface->requestFileBlock = requestFileBlock_Mqtt;
pDataInterface->decodeFileBlock = decodeFileBlock_Mqtt;
pDataInterface->cleanup = cleanupData_Mqtt;
err = OtaErrNone;
}
#endif /* if ( configOTA_PRIMARY_DATA_PROTOCOL == OTA_DATA_OVER_MQTT ) */
#endif /* if ( ( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_MQTT ) && !( configENABLED_DATA_PROTOCOLS & OTA_DATA_OVER_HTTP ) ) */
return err;
}