/
SoRusV
/
esp32_https_server
Обзор
Документация
Войти
/
SoRusV
/
esp32_https_server
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/HTTPHeader.cpp
43 строки
861 B
Frank Hessel
Normalize case of header names. Resolve #73
23 мар 2020, 21:56
Не верифицирован
23 мар 2020, 21:56
c221d22
Код
Авторство
О чём код?
#include "HTTPHeader.hpp" #include <locale> #include <ostream> #include <sstream> namespace httpsserver { HTTPHeader::HTTPHeader(const std::string &name, const std::string &value): _name(normalizeHeaderName(name)), _value(value) { } HTTPHeader::~HTTPHeader() { } std::string HTTPHeader::print() { return _name + ": " + _value; } std::string normalizeHeaderName(std::string const &name) { std::locale loc; std::stringbuf buf; std::ostream oBuf(&buf); bool upper = true; std::string::size_type len = name.length(); for (std::string::size_type i = 0; i < len; ++i) { if (upper) { oBuf << std::toupper(name[i], loc); upper = false; } else { oBuf << std::tolower(name[i], loc); if (!std::isalnum(name[i], loc)) { upper=true; } } } return buf.str(); } } /* namespace httpsserver */