X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fcommon%2Furl_escape.cc;fp=src%2Fceph%2Fsrc%2Fcommon%2Furl_escape.cc;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=6580d28c6ea5db674f11356fb2d21be380be9324;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/common/url_escape.cc b/src/ceph/src/common/url_escape.cc deleted file mode 100644 index 6580d28..0000000 --- a/src/ceph/src/common/url_escape.cc +++ /dev/null @@ -1,64 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab - -#include "url_escape.h" - -#include -#include - -std::string url_escape(const std::string& s) -{ - std::string out; - for (auto c : s) { - if (std::isalnum(c) || c == '-' || c == '.' || c == '_' || c == '~' || - c == '/') { - out.push_back(c); - } else { - char t[4]; - snprintf(t, sizeof(t), "%%%02x", (int)(unsigned char)c); - out.append(t); - } - } - return out; -} - -std::string url_unescape(const std::string& s) -{ - std::string out; - const char *end = s.c_str() + s.size(); - for (const char *c = s.c_str(); c < end; ++c) { - switch (*c) { - case '%': - { - unsigned char v = 0; - for (unsigned i=0; i<2; ++i) { - ++c; - if (c >= end) { - std::ostringstream ss; - ss << "invalid escaped string at pos " << (c - s.c_str()) << " of '" - << s << "'"; - throw std::runtime_error(ss.str()); - } - v <<= 4; - if (*c >= '0' && *c <= '9') { - v += *c - '0'; - } else if (*c >= 'a' && *c <= 'f') { - v += *c - 'a' + 10; - } else if (*c >= 'A' && *c <= 'F') { - v += *c - 'A' + 10; - } else { - std::ostringstream ss; - ss << "invalid escaped string at pos " << (c - s.c_str()) << " of '" - << s << "'"; - throw std::runtime_error(ss.str()); - } - } - out.push_back(v); - } - break; - default: - out.push_back(*c); - } - } - return out; -}