From 8cde5c515272f3cf2eb67f4f62969467f47aabe8 Mon Sep 17 00:00:00 2001 From: "ted.mielczarek@gmail.com" Date: Thu, 28 Aug 2014 15:26:59 +0000 Subject: Support for multiple upload files in CrashReportSender/HTTPUpload A=David Major R=ted at https://bugzilla.mozilla.org/show_bug.cgi?id=1048091 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1367 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/common/linux/http_upload.cc | 15 ++++++++------- src/common/linux/http_upload.h | 9 ++++----- 2 files changed, 12 insertions(+), 12 deletions(-) (limited to 'src/common/linux') diff --git a/src/common/linux/http_upload.cc b/src/common/linux/http_upload.cc index d49f2276..4492fe84 100644 --- a/src/common/linux/http_upload.cc +++ b/src/common/linux/http_upload.cc @@ -56,8 +56,7 @@ static const char kUserAgent[] = "Breakpad/1.0 (Linux)"; // static bool HTTPUpload::SendRequest(const string &url, const map ¶meters, - const string &upload_file, - const string &file_part_name, + const map &files, const string &proxy, const string &proxy_user_pwd, const string &ca_certificate_file, @@ -135,11 +134,13 @@ bool HTTPUpload::SendRequest(const string &url, CURLFORM_COPYCONTENTS, iter->second.c_str(), CURLFORM_END); - // Add form file. - (*curl_formadd)(&formpost, &lastptr, - CURLFORM_COPYNAME, file_part_name.c_str(), - CURLFORM_FILE, upload_file.c_str(), - CURLFORM_END); + // Add form files. + for (iter = files.begin(); iter != files.end(); ++iter) { + (*curl_formadd)(&formpost, &lastptr, + CURLFORM_COPYNAME, iter->first.c_str(), + CURLFORM_FILE, iter->second.c_str(), + CURLFORM_END); + } (*curl_easy_setopt)(curl, CURLOPT_HTTPPOST, formpost); diff --git a/src/common/linux/http_upload.h b/src/common/linux/http_upload.h index 6dd36ea0..4f0e452f 100644 --- a/src/common/linux/http_upload.h +++ b/src/common/linux/http_upload.h @@ -45,9 +45,9 @@ using std::map; class HTTPUpload { public: - // Sends the given set of parameters, along with the contents of - // upload_file, as a multipart POST request to the given URL. - // file_part_name contains the name of the file part of the request + // Sends the given sets of parameters and files as a multipart POST + // request to the given URL. + // Each key in |files| is the name of the file part of the request // (i.e. it corresponds to the name= attribute on an . // Parameter names must contain only printable ASCII characters, // and may not contain a quote (") character. @@ -60,8 +60,7 @@ class HTTPUpload { // returned in error_description. static bool SendRequest(const string &url, const map ¶meters, - const string &upload_file, - const string &file_part_name, + const map &files, const string &proxy, const string &proxy_user_pwd, const string &ca_certificate_file, -- cgit v1.2.1