feat: simplify removeHeader

This commit is contained in:
2026-04-11 12:27:40 -03:00
parent 642c1c80fa
commit 1a05ef2742
+6 -21
View File
@@ -49,13 +49,15 @@ int stoiSafe(const std::string& s, int default_val = 0, int base = 10)
void removeHeader(std::string& headers, const std::string& key) void removeHeader(std::string& headers, const std::string& key)
{ {
std::string result; if (!headers.empty() && headers.back() != '\n') headers += "\r\n";
size_t start = 0;
size_t end;
std::string result;
std::string keyLower = key; std::string keyLower = key;
std::transform(keyLower.begin(), keyLower.end(), keyLower.begin(), ::tolower); std::transform(keyLower.begin(), keyLower.end(), keyLower.begin(), ::tolower);
size_t start = 0;
size_t end;
while ((end = headers.find('\n', start)) != std::string::npos) while ((end = headers.find('\n', start)) != std::string::npos)
{ {
std::string line = headers.substr(start, end - start + 1); std::string line = headers.substr(start, end - start + 1);
@@ -68,30 +70,13 @@ void removeHeader(std::string& headers, const std::string& key)
size_t pos = keyLower.length(); size_t pos = keyLower.length();
while (pos < lineLower.length() && (lineLower[pos] == ' ' || lineLower[pos] == '\t')) while (pos < lineLower.length() && (lineLower[pos] == ' ' || lineLower[pos] == '\t'))
pos++; pos++;
if (pos < lineLower.length() && lineLower[pos] == ':') match = true; if (pos < lineLower.length() && lineLower[pos] == ':') match = true;
} }
if (!match) result += line; if (!match) result += line;
start = end + 1; start = end + 1;
} }
if (start < headers.length())
{
std::string line = headers.substr(start);
std::string lineLower = line;
std::transform(lineLower.begin(), lineLower.end(), lineLower.begin(), ::tolower);
bool match = false;
if (lineLower.compare(0, keyLower.length(), keyLower) == 0)
{
size_t pos = keyLower.length();
while (pos < lineLower.length() && (lineLower[pos] == ' ' || lineLower[pos] == '\t'))
pos++;
if (pos < lineLower.length() && lineLower[pos] == ':') match = true;
}
if (!match) result += line;
}
headers = std::move(result); headers = std::move(result);
} }