summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authortastytea2020-01-10 14:24:35 +0100
committertastytea2020-01-10 14:24:35 +0100
commit1910e780b0fd3b3a57444537ab21cc263532ff86 (patch)
treee3982820d11e3a3382c809558bb18a6432c3d28f /src
parent89c50951b3b17159f3267373edba73eb9849b78d (diff)
downloadmastodonpp-1910e780b0fd3b3a57444537ab21cc263532ff86.tar
mastodonpp-1910e780b0fd3b3a57444537ab21cc263532ff86.tar.gz
mastodonpp-1910e780b0fd3b3a57444537ab21cc263532ff86.zip
Add vector fields to HTTP forms.
Diffstat (limited to 'src')
-rw-r--r--src/curl_wrapper.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/curl_wrapper.cpp b/src/curl_wrapper.cpp
index ae7562c..86d3073 100644
--- a/src/curl_wrapper.cpp
+++ b/src/curl_wrapper.cpp
@@ -325,15 +325,15 @@ curl_mime *CURLWrapper::parameters_to_curl_mime(string &uri,
continue;
}
- curl_mimepart *part{curl_mime_addpart(mime)};
- if (part == nullptr)
- {
- throw CURLException{"Could not build HTTP form."};
- }
-
CURLcode code;
if (holds_alternative<string_view>(param.second))
{
+ curl_mimepart *part{curl_mime_addpart(mime)};
+ if (part == nullptr)
+ {
+ throw CURLException{"Could not build HTTP form."};
+ }
+
code = curl_mime_name(part, param.first.data());
if (code != CURLE_OK)
{
@@ -353,6 +353,12 @@ curl_mime *CURLWrapper::parameters_to_curl_mime(string &uri,
{
for (const auto &arg : get<vector<string_view>>(param.second))
{
+ curl_mimepart *part{curl_mime_addpart(mime)};
+ if (part == nullptr)
+ {
+ throw CURLException{"Could not build HTTP form."};
+ }
+
const string name{string(param.first) += "[]"};
code = curl_mime_name(part, name.c_str());
if (code != CURLE_OK)