mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-23 11:09:28 -05:00
Clean up defender demo (#422)
This commit is contained in:
parent
ced1845508
commit
5ba1e4cf95
4 changed files with 114 additions and 94 deletions
|
|
@ -96,8 +96,15 @@
|
|||
*/
|
||||
#define DEFENDER_RESPONSE_WAIT_SECONDS ( 2 )
|
||||
|
||||
/**
|
||||
* @brief Name of the report id field in the response from the AWS IoT Device
|
||||
* Defender service.
|
||||
*/
|
||||
#define DEFENDER_RESPONSE_REPORT_ID_FIELD "reportId"
|
||||
|
||||
/**
|
||||
* @brief The length of #DEFENDER_RESPONSE_REPORT_ID_FIELD.
|
||||
*/
|
||||
#define DEFENDER_RESPONSE_REPORT_ID_FIELD_LENGTH ( sizeof( DEFENDER_RESPONSE_REPORT_ID_FIELD ) - 1 )
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -62,8 +62,6 @@ eMetricsCollectorStatus eGetNetworkStats( NetworkStats_t * pxOutNetworkStats )
|
|||
|
||||
configASSERT( pxOutNetworkStats != NULL );
|
||||
|
||||
if( eStatus == eMetricsCollectorSuccess )
|
||||
{
|
||||
/* Start with everything as zero. */
|
||||
memset( pxOutNetworkStats, 0, sizeof( NetworkStats_t ) );
|
||||
|
||||
|
|
@ -72,13 +70,21 @@ eMetricsCollectorStatus eGetNetworkStats( NetworkStats_t * pxOutNetworkStats )
|
|||
|
||||
if( xMetricsStatus != 0 )
|
||||
{
|
||||
LogError( ( "Failed to acquire metrics from FreeRTOS+TCP tcp_netstat utility. Status: %d.",
|
||||
( int ) xMetricsStatus ) );
|
||||
eStatus = eMetricsCollectorCollectionFailed;
|
||||
}
|
||||
}
|
||||
|
||||
/* Fill our response with values gotten from FreeRTOS+TCP. */
|
||||
if( eStatus == eMetricsCollectorSuccess )
|
||||
{
|
||||
LogDebug( ( "Network stats read. Bytes received: %u, packets received: %u, "
|
||||
"bytes sent: %u, packets sent: %u.",
|
||||
( unsigned int ) xMetrics.xInput.uxByteCount,
|
||||
( unsigned int ) xMetrics.xInput.uxPacketCount,
|
||||
( unsigned int ) xMetrics.XOutput.uxByteCount,
|
||||
( unsigned int ) xMetrics.XOutput.uxPacketCount ) );
|
||||
|
||||
pxOutNetworkStats->ulBytesReceived = xMetrics.xInput.uxByteCount;
|
||||
pxOutNetworkStats->ulPacketsReceived = xMetrics.xInput.uxPacketCount;
|
||||
pxOutNetworkStats->ulBytesSent = xMetrics.XOutput.uxByteCount;
|
||||
|
|
@ -97,20 +103,20 @@ eMetricsCollectorStatus eGetOpenTcpPorts( uint16_t * pusOutTcpPortsArray,
|
|||
|
||||
MetricsType_t xMetrics = { 0 };
|
||||
BaseType_t xMetricsStatus = 0;
|
||||
uint32_t ulCopyAmount = 0UL;
|
||||
|
||||
/* pusOutTcpPortsArray can be NULL. */
|
||||
configASSERT( pulOutNumTcpOpenPorts != NULL );
|
||||
|
||||
if( eStatus == eMetricsCollectorSuccess )
|
||||
{
|
||||
/* Get metrics from FreeRTOS+TCP tcp_netstat utility. */
|
||||
xMetricsStatus = vGetMetrics( &xMetrics );
|
||||
|
||||
if( xMetricsStatus != 0 )
|
||||
{
|
||||
LogError( ( "Failed to acquire metrics from FreeRTOS+TCP tcp_netstat utility. Status: %d.",
|
||||
( int ) xMetricsStatus ) );
|
||||
eStatus = eMetricsCollectorCollectionFailed;
|
||||
}
|
||||
}
|
||||
|
||||
if( eStatus == eMetricsCollectorSuccess )
|
||||
{
|
||||
|
|
@ -121,14 +127,16 @@ eMetricsCollectorStatus eGetOpenTcpPorts( uint16_t * pusOutTcpPortsArray,
|
|||
* given array. */
|
||||
if( pusOutTcpPortsArray != NULL )
|
||||
{
|
||||
/* Lower the amount of ports copied if less are open than will fit
|
||||
* in the given array. */
|
||||
if( xMetrics.xTCPPortList.uxCount < ulTcpPortsArrayLength )
|
||||
ulCopyAmount = xMetrics.xTCPPortList.uxCount;
|
||||
|
||||
/* Limit the copied ports to what can fit in the output array. */
|
||||
if( ulTcpPortsArrayLength < xMetrics.xTCPPortList.uxCount )
|
||||
{
|
||||
ulTcpPortsArrayLength = xMetrics.xTCPPortList.uxCount;
|
||||
LogWarn( ( "Ports returned truncated due to insufficient buffer size." ) );
|
||||
ulCopyAmount = ulTcpPortsArrayLength;
|
||||
}
|
||||
|
||||
memcpy( pusOutTcpPortsArray, &xMetrics.xTCPPortList.usTCPPortList, ulTcpPortsArrayLength * sizeof( uint16_t ) );
|
||||
memcpy( pusOutTcpPortsArray, &xMetrics.xTCPPortList.usTCPPortList, ulCopyAmount * sizeof( uint16_t ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -144,20 +152,20 @@ eMetricsCollectorStatus eGetOpenUdpPorts( uint16_t * pusOutUdpPortsArray,
|
|||
|
||||
MetricsType_t xMetrics = { 0 };
|
||||
BaseType_t xMetricsStatus = 0;
|
||||
uint32_t ulCopyAmount = 0UL;
|
||||
|
||||
/* pusOutUdpPortsArray can be NULL. */
|
||||
configASSERT( pulOutNumUdpOpenPorts != NULL );
|
||||
|
||||
if( eStatus == eMetricsCollectorSuccess )
|
||||
{
|
||||
/* Get metrics from FreeRTOS+TCP tcp_netstat utility. */
|
||||
xMetricsStatus = vGetMetrics( &xMetrics );
|
||||
|
||||
if( xMetricsStatus != 0 )
|
||||
{
|
||||
LogError( ( "Failed to acquire metrics from FreeRTOS+TCP tcp_netstat utility. Status: %d.",
|
||||
( int ) xMetricsStatus ) );
|
||||
eStatus = eMetricsCollectorCollectionFailed;
|
||||
}
|
||||
}
|
||||
|
||||
if( eStatus == eMetricsCollectorSuccess )
|
||||
{
|
||||
|
|
@ -167,14 +175,16 @@ eMetricsCollectorStatus eGetOpenUdpPorts( uint16_t * pusOutUdpPortsArray,
|
|||
* given array. */
|
||||
if( pusOutUdpPortsArray != NULL )
|
||||
{
|
||||
/* Lower the amount of ports copied if less are open than will fit
|
||||
* in the given array. */
|
||||
if( xMetrics.xUDPPortList.uxCount < ulUdpPortsArrayLength )
|
||||
ulCopyAmount = xMetrics.xUDPPortList.uxCount;
|
||||
|
||||
/* Limit the copied ports to what can fit in the output array. */
|
||||
if( ulUdpPortsArrayLength < xMetrics.xUDPPortList.uxCount )
|
||||
{
|
||||
ulUdpPortsArrayLength = xMetrics.xUDPPortList.uxCount;
|
||||
LogWarn( ( "Ports returned truncated due to insufficient buffer size." ) );
|
||||
ulCopyAmount = ulUdpPortsArrayLength;
|
||||
}
|
||||
|
||||
memcpy( pusOutUdpPortsArray, &xMetrics.xUDPPortList.usUDPPortList, ulUdpPortsArrayLength * sizeof( uint16_t ) );
|
||||
memcpy( pusOutUdpPortsArray, &xMetrics.xUDPPortList.usUDPPortList, ulCopyAmount * sizeof( uint16_t ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -191,21 +201,22 @@ eMetricsCollectorStatus eGetEstablishedConnections( Connection_t * pxOutConnecti
|
|||
|
||||
MetricsType_t xMetrics = { 0 };
|
||||
BaseType_t xMetricsStatus = 0;
|
||||
uint32_t ulCopyAmount = 0UL;
|
||||
uint32_t ulLocalIp = 0UL;
|
||||
uint32_t i;
|
||||
|
||||
/* pxOutConnectionsArray can be NULL. */
|
||||
configASSERT( pulOutNumEstablishedConnections != NULL );
|
||||
|
||||
if( eStatus == eMetricsCollectorSuccess )
|
||||
{
|
||||
/* Get metrics from FreeRTOS+TCP tcp_netstat utility. */
|
||||
xMetricsStatus = vGetMetrics( &xMetrics );
|
||||
|
||||
if( xMetricsStatus != 0 )
|
||||
{
|
||||
LogError( ( "Failed to acquire metrics from FreeRTOS+TCP tcp_netstat utility. Status: %d.",
|
||||
( int ) xMetricsStatus ) );
|
||||
eStatus = eMetricsCollectorCollectionFailed;
|
||||
}
|
||||
}
|
||||
|
||||
if( eStatus == eMetricsCollectorSuccess )
|
||||
{
|
||||
|
|
@ -216,28 +227,27 @@ eMetricsCollectorStatus eGetEstablishedConnections( Connection_t * pxOutConnecti
|
|||
* the given array. */
|
||||
if( pxOutConnectionsArray != NULL )
|
||||
{
|
||||
ulCopyAmount = xMetrics.xTCPSocketList.uxCount;
|
||||
|
||||
/* Get local IP as the tcp_netstat utility does not give it. */
|
||||
ulLocalIp = FreeRTOS_GetIPAddress();
|
||||
|
||||
/* Lower the amount of socket infos populated if less are open than will fit
|
||||
* in the given array. */
|
||||
if( xMetrics.xTCPSocketList.uxCount < ulConnectionsArrayLength )
|
||||
/* Limit the outputted connections to what can fit in the output array. */
|
||||
if( ulConnectionsArrayLength < xMetrics.xTCPSocketList.uxCount )
|
||||
{
|
||||
ulConnectionsArrayLength = xMetrics.xTCPSocketList.uxCount;
|
||||
LogWarn( ( "Ports returned truncated due to insufficient buffer size." ) );
|
||||
ulCopyAmount = ulConnectionsArrayLength;
|
||||
}
|
||||
|
||||
/* If xMetrics.xTCPSocketList.uxCount > ulConnectionsArrayLength, we
|
||||
* return the first ulConnectionsArrayLength ports. */
|
||||
while( ulConnectionsArrayLength > 0 )
|
||||
for( i = 0; i < ulCopyAmount; i++ )
|
||||
{
|
||||
ulConnectionsArrayLength--;
|
||||
pxOutConnectionsArray[ ulConnectionsArrayLength ].ulLocalIp = ulLocalIp;
|
||||
pxOutConnectionsArray[ ulConnectionsArrayLength ].usLocalPort =
|
||||
xMetrics.xTCPSocketList.xTCPList[ ulConnectionsArrayLength ].usLocalPort;
|
||||
pxOutConnectionsArray[ ulConnectionsArrayLength ].ulRemoteIp =
|
||||
xMetrics.xTCPSocketList.xTCPList[ ulConnectionsArrayLength ].ulRemoteIP;
|
||||
pxOutConnectionsArray[ ulConnectionsArrayLength ].usRemotePort =
|
||||
xMetrics.xTCPSocketList.xTCPList[ ulConnectionsArrayLength ].usRemotePort;
|
||||
pxOutConnectionsArray[ i ].ulLocalIp = ulLocalIp;
|
||||
pxOutConnectionsArray[ i ].usLocalPort =
|
||||
xMetrics.xTCPSocketList.xTCPList[ i ].usLocalPort;
|
||||
pxOutConnectionsArray[ i ].ulRemoteIp =
|
||||
xMetrics.xTCPSocketList.xTCPList[ i ].ulRemoteIP;
|
||||
pxOutConnectionsArray[ i ].usRemotePort =
|
||||
xMetrics.xTCPSocketList.xTCPList[ i ].usRemotePort;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@
|
|||
#ifndef METRICS_COLLECTOR_H_
|
||||
#define METRICS_COLLECTOR_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* @brief Return codes from metrics collector APIs.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -166,9 +166,9 @@ static eReportBuilderStatus prvWritePortsArray( char * pcBuffer,
|
|||
uint32_t ulOpenPortsArrayLength,
|
||||
uint32_t * pulOutCharsWritten )
|
||||
{
|
||||
char * pCurrentWritePos = pcBuffer;
|
||||
char * pcCurrentWritePos = pcBuffer;
|
||||
uint32_t i, ulRemainingBufferLength = ulBufferLength;
|
||||
uint32_t ulCharactersWritten;
|
||||
int32_t ulCharactersWritten;
|
||||
eReportBuilderStatus eStatus = eReportBuilderSuccess;
|
||||
|
||||
configASSERT( pcBuffer != NULL );
|
||||
|
|
@ -178,9 +178,9 @@ static eReportBuilderStatus prvWritePortsArray( char * pcBuffer,
|
|||
/* Write the JSON array open marker. */
|
||||
if( ulRemainingBufferLength > 1 )
|
||||
{
|
||||
*pCurrentWritePos = reportbuilderJSON_ARRAY_OPEN_MARKER;
|
||||
*pcCurrentWritePos = reportbuilderJSON_ARRAY_OPEN_MARKER;
|
||||
ulRemainingBufferLength -= 1;
|
||||
pCurrentWritePos += 1;
|
||||
pcCurrentWritePos += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -190,7 +190,7 @@ static eReportBuilderStatus prvWritePortsArray( char * pcBuffer,
|
|||
/* Write the array elements. */
|
||||
for( i = 0; ( ( i < ulOpenPortsArrayLength ) && ( eStatus == eReportBuilderSuccess ) ); i++ )
|
||||
{
|
||||
ulCharactersWritten = snprintf( pCurrentWritePos,
|
||||
ulCharactersWritten = snprintf( pcCurrentWritePos,
|
||||
ulRemainingBufferLength,
|
||||
reportbuilderJSON_PORT_OBJECT_FORMAT,
|
||||
pusOpenPortsArray[ i ] );
|
||||
|
|
@ -203,7 +203,7 @@ static eReportBuilderStatus prvWritePortsArray( char * pcBuffer,
|
|||
else
|
||||
{
|
||||
ulRemainingBufferLength -= ( uint32_t ) ulCharactersWritten;
|
||||
pCurrentWritePos += ulCharactersWritten;
|
||||
pcCurrentWritePos += ulCharactersWritten;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -212,16 +212,16 @@ static eReportBuilderStatus prvWritePortsArray( char * pcBuffer,
|
|||
/* Discard the last comma. */
|
||||
if( ulOpenPortsArrayLength > 0 )
|
||||
{
|
||||
pCurrentWritePos -= 1;
|
||||
pcCurrentWritePos -= 1;
|
||||
ulRemainingBufferLength += 1;
|
||||
}
|
||||
|
||||
/* Write the JSON array close marker. */
|
||||
if( ulRemainingBufferLength > 1 )
|
||||
{
|
||||
*pCurrentWritePos = reportbuilderJSON_ARRAY_CLOSE_MARKER;
|
||||
*pcCurrentWritePos = reportbuilderJSON_ARRAY_CLOSE_MARKER;
|
||||
ulRemainingBufferLength -= 1;
|
||||
pCurrentWritePos += 1;
|
||||
pcCurrentWritePos += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -244,9 +244,9 @@ static eReportBuilderStatus prvWriteConnectionsArray( char * pcBuffer,
|
|||
uint32_t ulConnectionsArrayLength,
|
||||
uint32_t * pulOutCharsWritten )
|
||||
{
|
||||
char * pCurrentWritePos = pcBuffer;
|
||||
char * pcCurrentWritePos = pcBuffer;
|
||||
uint32_t i, ulRemainingBufferLength = ulBufferLength;
|
||||
uint32_t ulCharactersWritten;
|
||||
int32_t ulCharactersWritten;
|
||||
eReportBuilderStatus eStatus = eReportBuilderSuccess;
|
||||
const Connection_t * pxConn;
|
||||
|
||||
|
|
@ -257,9 +257,9 @@ static eReportBuilderStatus prvWriteConnectionsArray( char * pcBuffer,
|
|||
/* Write the JSON array open marker. */
|
||||
if( ulRemainingBufferLength > 1 )
|
||||
{
|
||||
*pCurrentWritePos = reportbuilderJSON_ARRAY_OPEN_MARKER;
|
||||
*pcCurrentWritePos = reportbuilderJSON_ARRAY_OPEN_MARKER;
|
||||
ulRemainingBufferLength -= 1;
|
||||
pCurrentWritePos += 1;
|
||||
pcCurrentWritePos += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -270,7 +270,7 @@ static eReportBuilderStatus prvWriteConnectionsArray( char * pcBuffer,
|
|||
for( i = 0; ( ( i < ulConnectionsArrayLength ) && ( eStatus == eReportBuilderSuccess ) ); i++ )
|
||||
{
|
||||
pxConn = &( pxConnectionsArray[ i ] );
|
||||
ulCharactersWritten = snprintf( pCurrentWritePos,
|
||||
ulCharactersWritten = snprintf( pcCurrentWritePos,
|
||||
ulRemainingBufferLength,
|
||||
reportbuilderJSON_CONNECTION_OBJECT_FORMAT,
|
||||
pxConn->usLocalPort,
|
||||
|
|
@ -288,7 +288,7 @@ static eReportBuilderStatus prvWriteConnectionsArray( char * pcBuffer,
|
|||
else
|
||||
{
|
||||
ulRemainingBufferLength -= ulCharactersWritten;
|
||||
pCurrentWritePos += ulCharactersWritten;
|
||||
pcCurrentWritePos += ulCharactersWritten;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -297,16 +297,16 @@ static eReportBuilderStatus prvWriteConnectionsArray( char * pcBuffer,
|
|||
/* Discard the last comma. */
|
||||
if( ulConnectionsArrayLength > 0 )
|
||||
{
|
||||
pCurrentWritePos -= 1;
|
||||
pcCurrentWritePos -= 1;
|
||||
ulRemainingBufferLength += 1;
|
||||
}
|
||||
|
||||
/* Write the JSON array close marker. */
|
||||
if( ulRemainingBufferLength > 1 )
|
||||
{
|
||||
*pCurrentWritePos = reportbuilderJSON_ARRAY_CLOSE_MARKER;
|
||||
*pcCurrentWritePos = reportbuilderJSON_ARRAY_CLOSE_MARKER;
|
||||
ulRemainingBufferLength -= 1;
|
||||
pCurrentWritePos += 1;
|
||||
pcCurrentWritePos += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -331,14 +331,15 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
uint32_t ulReportId,
|
||||
uint32_t * pulOutReportLength )
|
||||
{
|
||||
char * pCurrentWritePos = pcBuffer;
|
||||
char * pcCurrentWritePos = pcBuffer;
|
||||
uint32_t ulRemainingBufferLength = ulBufferLength, bufferWritten;
|
||||
eReportBuilderStatus eStatus = eReportBuilderSuccess;
|
||||
uint32_t ulCharactersWritten;
|
||||
int32_t ulCharactersWritten;
|
||||
|
||||
configASSERT( pcBuffer != NULL );
|
||||
configASSERT( pxMetrics != NULL );
|
||||
configASSERT( pulOutReportLength != NULL );
|
||||
configASSERT( ulBufferLength != 0 );
|
||||
|
||||
if( ( pcBuffer == NULL ) ||
|
||||
( ulBufferLength == 0 ) ||
|
||||
|
|
@ -357,7 +358,7 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
/* Write part1. */
|
||||
if( eStatus == eReportBuilderSuccess )
|
||||
{
|
||||
ulCharactersWritten = snprintf( pCurrentWritePos,
|
||||
ulCharactersWritten = snprintf( pcCurrentWritePos,
|
||||
ulRemainingBufferLength,
|
||||
reportbuilderJSON_REPORT_FORMAT_PART1,
|
||||
ulReportId,
|
||||
|
|
@ -372,14 +373,14 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
else
|
||||
{
|
||||
ulRemainingBufferLength -= ulCharactersWritten;
|
||||
pCurrentWritePos += ulCharactersWritten;
|
||||
pcCurrentWritePos += ulCharactersWritten;
|
||||
}
|
||||
}
|
||||
|
||||
/* Write TCP ports array. */
|
||||
if( eStatus == eReportBuilderSuccess )
|
||||
{
|
||||
eStatus = prvWritePortsArray( pCurrentWritePos,
|
||||
eStatus = prvWritePortsArray( pcCurrentWritePos,
|
||||
ulRemainingBufferLength,
|
||||
pxMetrics->pusOpenTcpPortsArray,
|
||||
pxMetrics->ulOpenTcpPortsArrayLength,
|
||||
|
|
@ -387,7 +388,7 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
|
||||
if( eStatus == eReportBuilderSuccess )
|
||||
{
|
||||
pCurrentWritePos += bufferWritten;
|
||||
pcCurrentWritePos += bufferWritten;
|
||||
ulRemainingBufferLength -= bufferWritten;
|
||||
}
|
||||
else
|
||||
|
|
@ -399,7 +400,7 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
/* Write part2. */
|
||||
if( eStatus == eReportBuilderSuccess )
|
||||
{
|
||||
ulCharactersWritten = snprintf( pCurrentWritePos,
|
||||
ulCharactersWritten = snprintf( pcCurrentWritePos,
|
||||
ulRemainingBufferLength,
|
||||
reportbuilderJSON_REPORT_FORMAT_PART2,
|
||||
pxMetrics->ulOpenTcpPortsArrayLength );
|
||||
|
|
@ -412,14 +413,14 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
else
|
||||
{
|
||||
ulRemainingBufferLength -= ulCharactersWritten;
|
||||
pCurrentWritePos += ulCharactersWritten;
|
||||
pcCurrentWritePos += ulCharactersWritten;
|
||||
}
|
||||
}
|
||||
|
||||
/* Write UDP ports array. */
|
||||
if( eStatus == eReportBuilderSuccess )
|
||||
{
|
||||
eStatus = prvWritePortsArray( pCurrentWritePos,
|
||||
eStatus = prvWritePortsArray( pcCurrentWritePos,
|
||||
ulRemainingBufferLength,
|
||||
pxMetrics->pusOpenUdpPortsArray,
|
||||
pxMetrics->ulOpenUdpPortsArrayLength,
|
||||
|
|
@ -427,7 +428,7 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
|
||||
if( eStatus == eReportBuilderSuccess )
|
||||
{
|
||||
pCurrentWritePos += bufferWritten;
|
||||
pcCurrentWritePos += bufferWritten;
|
||||
ulRemainingBufferLength -= bufferWritten;
|
||||
}
|
||||
else
|
||||
|
|
@ -439,7 +440,7 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
/* Write part3. */
|
||||
if( eStatus == eReportBuilderSuccess )
|
||||
{
|
||||
ulCharactersWritten = snprintf( pCurrentWritePos,
|
||||
ulCharactersWritten = snprintf( pcCurrentWritePos,
|
||||
ulRemainingBufferLength,
|
||||
reportbuilderJSON_REPORT_FORMAT_PART3,
|
||||
pxMetrics->ulOpenUdpPortsArrayLength,
|
||||
|
|
@ -456,14 +457,14 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
else
|
||||
{
|
||||
ulRemainingBufferLength -= ulCharactersWritten;
|
||||
pCurrentWritePos += ulCharactersWritten;
|
||||
pcCurrentWritePos += ulCharactersWritten;
|
||||
}
|
||||
}
|
||||
|
||||
/* Write connections array. */
|
||||
if( eStatus == eReportBuilderSuccess )
|
||||
{
|
||||
eStatus = prvWriteConnectionsArray( pCurrentWritePos,
|
||||
eStatus = prvWriteConnectionsArray( pcCurrentWritePos,
|
||||
ulRemainingBufferLength,
|
||||
pxMetrics->pxEstablishedConnectionsArray,
|
||||
pxMetrics->ulEstablishedConnectionsArrayLength,
|
||||
|
|
@ -471,7 +472,7 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
|
||||
if( eStatus == eReportBuilderSuccess )
|
||||
{
|
||||
pCurrentWritePos += bufferWritten;
|
||||
pcCurrentWritePos += bufferWritten;
|
||||
ulRemainingBufferLength -= bufferWritten;
|
||||
}
|
||||
else
|
||||
|
|
@ -483,7 +484,7 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
/* Write part4. */
|
||||
if( eStatus == eReportBuilderSuccess )
|
||||
{
|
||||
ulCharactersWritten = snprintf( pCurrentWritePos,
|
||||
ulCharactersWritten = snprintf( pcCurrentWritePos,
|
||||
ulRemainingBufferLength,
|
||||
reportbuilderJSON_REPORT_FORMAT_PART4,
|
||||
pxMetrics->ulEstablishedConnectionsArrayLength );
|
||||
|
|
@ -496,7 +497,7 @@ eReportBuilderStatus eGenerateJsonReport( char * pcBuffer,
|
|||
else
|
||||
{
|
||||
ulRemainingBufferLength -= ulCharactersWritten;
|
||||
pCurrentWritePos += ulCharactersWritten;
|
||||
pcCurrentWritePos += ulCharactersWritten;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue