Skip to content

Commit 99b236b

Browse files
committed
Add CONST_STRLEN preprocessor macro.
1 parent dddff43 commit 99b236b

File tree

2 files changed

+28
-25
lines changed

2 files changed

+28
-25
lines changed

Diff for: source/core_http_client.c

+21-25
Original file line numberDiff line numberDiff line change
@@ -1015,8 +1015,7 @@ static void initializeParsingContextForFirstResponse( HTTPParsingContext_t * pPa
10151015
* indicated to stop by returning a 1 from httpParserOnHeadersCompleteCallback().
10161016
* If this is not done, the parser will not indicate the message is complete. */
10171017
if( strncmp( ( const char * ) ( pRequestHeaders->pBuffer ),
1018-
HTTP_METHOD_HEAD,
1019-
sizeof( HTTP_METHOD_HEAD ) - 1U ) == 0 )
1018+
HTTP_METHOD_HEAD, CONST_STRLEN( HTTP_METHOD_HEAD ) ) == 0 )
10201019
{
10211020
pParsingContext->isHeadResponse = 1U;
10221021
}
@@ -1327,18 +1326,19 @@ static HTTPStatus_t addHeader( HTTPRequestHeaders_t * pRequestHeaders,
13271326
/* Backtrack before trailing "\r\n" (HTTP header end) if it's already written.
13281327
* Note that this method also writes trailing "\r\n" before returning.
13291328
* The first condition prevents reading before start of the header. */
1330-
if( ( 4U <= pRequestHeaders->headersLen ) &&
1331-
( strcmp( "\r\n\r\n", ( char * ) pBufferCur - 4U ) == 0 ) )
1329+
if( ( CONST_STRLEN( "\r\n\r\n" ) <= pRequestHeaders->headersLen ) &&
1330+
( strcmp( "\r\n\r\n", ( char * ) pBufferCur - CONST_STRLEN( "\r\n\r\n" ) ) == 0 ) )
13321331
{
1333-
backtrackHeaderLen -= 2U;
1334-
pBufferCur -= 2U;
1332+
backtrackHeaderLen -= CONST_STRLEN( "\r\n" );
1333+
pBufferCur -= CONST_STRLEN( "\r\n" );
13351334
}
13361335

13371336
/*
13381337
* Check if there is enough space in buffer for additional header.
13391338
* "<field>: <value>\r\n\r\n"
13401339
*/
1341-
toAddLen = fieldLen + 2U + valueLen + 2U + 2U;
1340+
toAddLen = fieldLen + CONST_STRLEN( ": " ) +
1341+
valueLen + CONST_STRLEN( "\r\n\r\n" );
13421342

13431343
/* If we have enough room for the new header line, then write it to the
13441344
* header buffer. */
@@ -1359,7 +1359,7 @@ static HTTPStatus_t addHeader( HTTPRequestHeaders_t * pRequestHeaders,
13591359
/* Copy the field separator, ": ", into the buffer. */
13601360
( void ) strcpy( pBufferCur, ": " );
13611361

1362-
pBufferCur += 2U;
1362+
pBufferCur += CONST_STRLEN( ": " );
13631363

13641364
/* Copy the header value into the buffer. */
13651365
if( httpHeaderStrncpy( pBufferCur, pValue, valueLen, HTTP_HEADER_STRNCPY_IS_VALUE ) == NULL )
@@ -1414,7 +1414,7 @@ static HTTPStatus_t addRangeHeader( HTTPRequestHeaders_t * pRequestHeaders,
14141414
/* Write the range value prefix in the buffer. */
14151415
( void ) strcpy( rangeValueBuffer, "bytes=" );
14161416

1417-
rangeValueLength += sizeof( "bytes=" ) - 1U;
1417+
rangeValueLength += CONST_STRLEN( "bytes=" );
14181418

14191419
/* Write the range start value in the buffer. */
14201420
rangeValueLength += convertInt32ToAscii( rangeStartOrlastNbytes,
@@ -1450,7 +1450,7 @@ static HTTPStatus_t addRangeHeader( HTTPRequestHeaders_t * pRequestHeaders,
14501450
/* Add the Range Request header field and value to the buffer. */
14511451
returnStatus = addHeader( pRequestHeaders,
14521452
"Range",
1453-
sizeof( "Range" ) - 1U,
1453+
CONST_STRLEN( "Range" ),
14541454
rangeValueBuffer,
14551455
rangeValueLength );
14561456

@@ -1477,16 +1477,15 @@ static HTTPStatus_t writeRequestLine( HTTPRequestHeaders_t * pRequestHeaders,
14771477
if( ( pPath == NULL ) || ( pathLen == 0U ) )
14781478
{
14791479
/* "<METHOD> / " */
1480-
toAddLen = methodLen + 1U + 1U + 1U;
1480+
toAddLen = methodLen + CONST_STRLEN( " / " );
14811481
}
14821482
else
14831483
{
14841484
/* "<METHOD> <PATH> " */
14851485
toAddLen = methodLen + 1U + pathLen + 1U;
14861486
}
14871487

1488-
/* "HTTP/1.1\r\n" */
1489-
toAddLen += sizeof( "HTTP/1.1" ) - 1U + 2U;
1488+
toAddLen += CONST_STRLEN( "HTTP/1.1\r\n" );
14901489

14911490
pBufferCur = ( char * ) ( pRequestHeaders->pBuffer );
14921491

@@ -1520,7 +1519,7 @@ static HTTPStatus_t writeRequestLine( HTTPRequestHeaders_t * pRequestHeaders,
15201519
pBufferCur += 1U;
15211520

15221521
( void ) strcpy( pBufferCur, "HTTP/1.1\r\n" );
1523-
pBufferCur += sizeof( "HTTP/1.1\r\n" ) - 1U;
1522+
pBufferCur += CONST_STRLEN( "HTTP/1.1\r\n" );
15241523

15251524
pRequestHeaders->headersLen = toAddLen;
15261525
}
@@ -1594,17 +1593,17 @@ HTTPStatus_t HTTPClient_InitializeRequestHeaders( HTTPRequestHeaders_t * pReques
15941593
/* Write "User-Agent: <Value>". */
15951594
returnStatus = addHeader( pRequestHeaders,
15961595
"User-Agent",
1597-
sizeof( "User-Agent" ) - 1U,
1596+
CONST_STRLEN( "User-Agent" ),
15981597
HTTP_USER_AGENT_VALUE,
1599-
sizeof( HTTP_USER_AGENT_VALUE ) - 1U );
1598+
CONST_STRLEN( HTTP_USER_AGENT_VALUE ) );
16001599
}
16011600

16021601
if( returnStatus == HTTPSuccess )
16031602
{
16041603
/* Write "Host: <Value>". */
16051604
returnStatus = addHeader( pRequestHeaders,
16061605
"Host",
1607-
sizeof( "Host" ) - 1U,
1606+
CONST_STRLEN( "Host" ),
16081607
pRequestInfo->pHost,
16091608
pRequestInfo->hostLen );
16101609
}
@@ -1616,9 +1615,9 @@ HTTPStatus_t HTTPClient_InitializeRequestHeaders( HTTPRequestHeaders_t * pReques
16161615
/* Write "Connection: keep-alive". */
16171616
returnStatus = addHeader( pRequestHeaders,
16181617
"Connection",
1619-
sizeof( "Connection" ) - 1U,
1618+
CONST_STRLEN( "Connection" ),
16201619
"keep-alive",
1621-
sizeof( "keep-alive" ) - 1U );
1620+
CONST_STRLEN( "keep-alive" ) );
16221621
}
16231622
}
16241623

@@ -1848,7 +1847,7 @@ static HTTPStatus_t addContentLengthHeader( HTTPRequestHeaders_t * pRequestHeade
18481847

18491848
returnStatus = addHeader( pRequestHeaders,
18501849
"Content-Length",
1851-
sizeof( "Content-Length" ) - 1U,
1850+
CONST_STRLEN( "Content-Length" ),
18521851
pContentLengthValue,
18531852
contentLengthValueNumBytes );
18541853

@@ -1871,18 +1870,15 @@ static HTTPStatus_t sendHttpHeaders( const TransportInterface_t * pTransport,
18711870
uint32_t sendFlags )
18721871
{
18731872
HTTPStatus_t returnStatus = HTTPSuccess;
1874-
uint8_t shouldSendContentLength = 0U;
18751873

18761874
assert( pTransport != NULL );
18771875
assert( pTransport->send != NULL );
18781876
assert( pRequestHeaders != NULL );
18791877

18801878
/* Send the content length header if the flag to disable is not set and the
18811879
* body length is greater than zero. */
1882-
shouldSendContentLength = ( ( ( sendFlags & HTTP_SEND_DISABLE_CONTENT_LENGTH_FLAG ) == 0U ) &&
1883-
( reqBodyLen > 0U ) ) ? 1U : 0U;
1884-
1885-
if( shouldSendContentLength == 1U )
1880+
if( ( reqBodyLen > 0U ) &&
1881+
( ( sendFlags & HTTP_SEND_DISABLE_CONTENT_LENGTH_FLAG ) == 0U ) )
18861882
{
18871883
returnStatus = addContentLengthHeader( pRequestHeaders, reqBodyLen );
18881884
}

Diff for: source/include/core_http_client_private.h

+7
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@
4646
#endif
4747
/* *INDENT-ON* */
4848

49+
/**
50+
* @brief Preprocessor macro to calculate the length of a const char * string.
51+
* @note It is intended that this function-like macro be evaluated by the c
52+
* preprocessor to the actual length of the constant string argument.
53+
*/
54+
#define CONST_STRLEN( string ) ( sizeof( string ) - 1U )
55+
4956
/**
5057
* @brief Indicator for function #httpHeaderStrncpy that the pSrc parameter is a
5158
* header value.

0 commit comments

Comments
 (0)