From 7b92cf28664da516cfe5ec1390a672e358c15424 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Mon, 10 May 2021 22:54:16 +0100 Subject: Extract percent encoding logic from spanningtree to inspstring. --- src/modules/m_spanningtree/utils.cpp | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) (limited to 'src/modules/m_spanningtree/utils.cpp') diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp index 8d454dbc3..1eea08317 100644 --- a/src/modules/m_spanningtree/utils.cpp +++ b/src/modules/m_spanningtree/utils.cpp @@ -382,23 +382,12 @@ std::string SpanningTreeUtilities::BuildLinkString(uint16_t proto, Module* mod) if (data.empty()) return ""; // No link data. - static const char* hextable = "0123456789ABCDEF"; - bool first = true; - for (const auto& [name, value] : data) + for (Module::LinkData::const_iterator iter = data.begin(); iter != data.end(); ++iter) { - if (!first) + if (iter != data.begin()) buffer << '&'; - first = false; - buffer << name << '='; - for (const auto& chr : value) - { - // TODO: extract URL encoding logic to inspstring. - unsigned char uchr = static_cast(chr); - if (isalnum(uchr)) - buffer << uchr; - else - buffer << '%' << hextable[uchr >> 4] << hextable[uchr & 15]; - } + + buffer << iter->first << '=' << Percent::Encode(iter->second); } } -- cgit v1.3.1-10-gc9f91