MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / validateRequestHeaders

Function validateRequestHeaders

Libraries/HttpClient/HttpClient.cpp:179–198  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

177}
178
179static SC::Result validateRequestHeaders(SC::Span<const SC::HttpClientHeader> headers)
180{
181 for (size_t headerIdx = 0; headerIdx < headers.sizeInElements(); ++headerIdx)
182 {
183 const SC::Span<const char> name = headers[headerIdx].name.toCharSpan();
184 SC_TRY_MSG(name.sizeInBytes() > 0, "HttpClientRequest: request header name is empty");
185 for (size_t byteIdx = 0; byteIdx < name.sizeInBytes(); ++byteIdx)
186 {
187 SC_TRY_MSG(isHttpHeaderNameByte(name[byteIdx]), "HttpClientRequest: request header name is invalid");
188 }
189
190 const SC::Span<const char> value = headers[headerIdx].value.toCharSpan();
191 for (size_t byteIdx = 0; byteIdx < value.sizeInBytes(); ++byteIdx)
192 {
193 SC_TRY_MSG(value[byteIdx] != '\r' and value[byteIdx] != '\n' and value[byteIdx] != '\0',
194 "HttpClientRequest: request header value is invalid");
195 }
196 }
197 return SC::Result(true);
198}
199
200static SC::Result validateRequestBodyFramingHeaders(const SC::HttpClientRequest& request)
201{

Callers 1

validateRequestShapeFunction · 0.85

Calls 3

isHttpHeaderNameByteFunction · 0.85
ResultClass · 0.50
sizeInBytesMethod · 0.45

Tested by

no test coverage detected