in source/core_http_client.c [1950:1993]
static HTTPStatus_t getFinalResponseStatus( HTTPParsingState_t parsingState,
size_t totalReceived,
size_t responseBufferLen )
{
HTTPStatus_t returnStatus = HTTPSuccess;
assert( parsingState >= HTTP_PARSING_NONE &&
parsingState <= HTTP_PARSING_COMPLETE );
assert( totalReceived <= responseBufferLen );
/* If no parsing occurred, that means network data was never received. */
if( parsingState == HTTP_PARSING_NONE )
{
LogError( ( "Response not received: Zero returned from "
"transport recv: totalReceived=%lu",
( unsigned long ) totalReceived ) );
returnStatus = HTTPNoResponse;
}
else if( parsingState == HTTP_PARSING_INCOMPLETE )
{
if( totalReceived == responseBufferLen )
{
LogError( ( "Cannot receive complete response from transport"
" interface: Response buffer has insufficient "
"space: responseBufferLen=%lu",
( unsigned long ) responseBufferLen ) );
returnStatus = HTTPInsufficientMemory;
}
else
{
LogError( ( "Received partial response from transport "
"receive(): ResponseSize=%lu, TotalBufferSize=%lu",
( unsigned long ) totalReceived,
( unsigned long ) ( responseBufferLen - totalReceived ) ) );
returnStatus = HTTPPartialResponse;
}
}
else
{
/* Empty else for MISRA 15.7 compliance. */
}
return returnStatus;
}