summaryrefslogtreecommitdiff
path: root/Source/Core/Common/HttpRequest.cpp
diff options
context:
space:
mode:
authorspycrab <spycrab@users.noreply.github.com>2019-03-30 14:49:18 +0100
committerspycrab <spycrab@users.noreply.github.com>2019-03-30 17:13:57 +0100
commit3dbf44417a7cc50e7e173bd710a5fcb904bdfe20 (patch)
treee8536a816c05afe21b04b5ad73881332ab2991b8 /Source/Core/Common/HttpRequest.cpp
parent0bce1c509de46e3be3eeef732f264f1b17e3e333 (diff)
Common/HttpRequest: Implement EscapeComponent
Diffstat (limited to 'Source/Core/Common/HttpRequest.cpp')
-rw-r--r--Source/Core/Common/HttpRequest.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/Core/Common/HttpRequest.cpp b/Source/Core/Common/HttpRequest.cpp
index cee9d7434c..82fed65598 100644
--- a/Source/Core/Common/HttpRequest.cpp
+++ b/Source/Core/Common/HttpRequest.cpp
@@ -36,6 +36,7 @@ public:
static int CurlProgressCallback(Impl* impl, double dlnow, double dltotal, double ulnow,
double ultotal);
+ const std::string EscapeComponent(const std::string& string);
private:
static std::mutex s_curl_was_inited_mutex;
@@ -74,6 +75,11 @@ void HttpRequest::FollowRedirects(long max)
m_impl->FollowRedirects(max);
}
+const std::string HttpRequest::EscapeComponent(const std::string& string)
+{
+ return m_impl->EscapeComponent(string);
+}
+
HttpRequest::Response HttpRequest::Get(const std::string& url, const Headers& headers)
{
return m_impl->Fetch(url, Impl::Method::GET, headers, nullptr, 0);
@@ -159,6 +165,11 @@ void HttpRequest::Impl::FollowRedirects(long max)
curl_easy_setopt(m_curl.get(), CURLOPT_MAXREDIRS, max);
}
+const std::string HttpRequest::Impl::EscapeComponent(const std::string& string)
+{
+ return curl_easy_escape(m_curl.get(), string.c_str(), static_cast<int>(string.size()));
+}
+
static size_t CurlWriteCallback(char* data, size_t size, size_t nmemb, void* userdata)
{
auto* buffer = static_cast<std::vector<u8>*>(userdata);