Skip to content

Commit 166cbe0

Browse files
committed
Reduce gnu complexity score of httpHeaderCpy function.
1 parent d5a7cca commit 166cbe0

File tree

1 file changed

+25
-37
lines changed

1 file changed

+25
-37
lines changed

source/core_http_client.c

+25-37
Original file line numberDiff line numberDiff line change
@@ -1289,44 +1289,32 @@ static size_t httpHeaderCpy( char * pDest,
12891289

12901290
for( i = 0; i < len; i++ )
12911291
{
1292-
switch( pSrc[ i ] )
1292+
if( pSrc[ i ] == NULL_CHARACTER )
1293+
{
1294+
endOfInput = 1U;
1295+
}
1296+
else if( pSrc[ i ] == CARRIAGE_RETURN_CHARACTER )
1297+
{
1298+
LogError( ( "Invalid character '\r' found in %.*s",
1299+
( int ) len, pSrc ) );
1300+
hasError = 1U;
1301+
}
1302+
else if( pSrc[ i ] == LINEFEED_CHARACTER )
1303+
{
1304+
LogError( ( "Invalid character '\n' found in %.*s",
1305+
( int ) len, pSrc ) );
1306+
hasError = 1U;
1307+
}
1308+
else if( ( pSrc[ i ] == COLON_CHARACTER ) && ( isField == 1U ) )
1309+
{
1310+
LogError( ( "Invalid character ':' found in %.*s",
1311+
( int ) len, pSrc ) );
1312+
hasError = 1U;
1313+
}
1314+
else
12931315
{
1294-
case NULL_CHARACTER:
1295-
endOfInput = 1U;
1296-
break;
1297-
1298-
case CARRIAGE_RETURN_CHARACTER:
1299-
LogError( ( "Invalid character '\r' found in %.*s",
1300-
( int ) len, pSrc ) );
1301-
hasError = 1U;
1302-
break;
1303-
1304-
case LINEFEED_CHARACTER:
1305-
LogError( ( "Invalid character '\n' found in %.*s",
1306-
( int ) len, pSrc ) );
1307-
hasError = 1U;
1308-
break;
1309-
1310-
case COLON_CHARACTER:
1311-
1312-
if( isField == 1U )
1313-
{
1314-
LogError( ( "Invalid character ':' found in %.*s",
1315-
( int ) len, pSrc ) );
1316-
hasError = 1U;
1317-
}
1318-
else
1319-
{
1320-
pDest[ i ] = pSrc[ i ];
1321-
charsWritten++;
1322-
}
1323-
1324-
break;
1325-
1326-
default:
1327-
pDest[ i ] = pSrc[ i ];
1328-
charsWritten++;
1329-
break;
1316+
pDest[ i ] = pSrc[ i ];
1317+
charsWritten++;
13301318
}
13311319

13321320
if( ( endOfInput == 1U ) || ( hasError == 1U ) )

0 commit comments

Comments
 (0)