in source/core_http_client.c [1486:1553]
static HTTPStatus_t writeRequestLine( HTTPRequestHeaders_t * pRequestHeaders,
const char * pMethod,
size_t methodLen,
const char * pPath,
size_t pathLen )
{
HTTPStatus_t returnStatus = HTTPSuccess;
char * pBufferCur = NULL;
size_t toAddLen = 0U;
assert( pRequestHeaders != NULL );
assert( pRequestHeaders->pBuffer != NULL );
assert( pMethod != NULL );
assert( methodLen != 0U );
toAddLen = methodLen + \
SPACE_CHARACTER_LEN + \
SPACE_CHARACTER_LEN + \
HTTP_PROTOCOL_VERSION_LEN + \
HTTP_HEADER_LINE_SEPARATOR_LEN;
pBufferCur = ( char * ) ( pRequestHeaders->pBuffer );
toAddLen += ( ( pPath == NULL ) || ( pathLen == 0U ) ) ? HTTP_EMPTY_PATH_LEN : pathLen;
if( ( toAddLen + pRequestHeaders->headersLen ) > pRequestHeaders->bufferLen )
{
returnStatus = HTTPInsufficientMemory;
}
if( returnStatus == HTTPSuccess )
{
/* Write "<METHOD> <PATH> HTTP/1.1\r\n" to start the HTTP header. */
( void ) strncpy( pBufferCur, pMethod, methodLen );
pBufferCur += methodLen;
*pBufferCur = SPACE_CHARACTER;
pBufferCur += SPACE_CHARACTER_LEN;
/* Use "/" as default value if <PATH> is NULL. */
if( ( pPath == NULL ) || ( pathLen == 0U ) )
{
( void ) strncpy( pBufferCur,
HTTP_EMPTY_PATH,
HTTP_EMPTY_PATH_LEN );
pBufferCur += HTTP_EMPTY_PATH_LEN;
}
else
{
( void ) strncpy( pBufferCur, pPath, pathLen );
pBufferCur += pathLen;
}
*pBufferCur = SPACE_CHARACTER;
pBufferCur += SPACE_CHARACTER_LEN;
( void ) strncpy( pBufferCur,
HTTP_PROTOCOL_VERSION,
HTTP_PROTOCOL_VERSION_LEN );
pBufferCur += HTTP_PROTOCOL_VERSION_LEN;
( void ) strncpy( pBufferCur,
HTTP_HEADER_LINE_SEPARATOR,
HTTP_HEADER_LINE_SEPARATOR_LEN );
pRequestHeaders->headersLen = toAddLen;
}
return returnStatus;
}