From 712d61d2c1dbfe79c47910817a205387f7311306 Mon Sep 17 00:00:00 2001 From: Alex Shvartzkop Date: Sat, 29 Jul 2023 10:07:01 +0500 Subject: [PATCH] KICAD_CURL_EASY: add SetPostFields(). --- common/kicad_curl/kicad_curl_easy.cpp | 22 ++++++++++++++++++++++ include/kicad_curl/kicad_curl_easy.h | 8 ++++++++ 2 files changed, 30 insertions(+) diff --git a/common/kicad_curl/kicad_curl_easy.cpp b/common/kicad_curl/kicad_curl_easy.cpp index 035a269eb9..d653069075 100644 --- a/common/kicad_curl/kicad_curl_easy.cpp +++ b/common/kicad_curl/kicad_curl_easy.cpp @@ -230,6 +230,28 @@ bool KICAD_CURL_EASY::SetUserAgent( const std::string& aAgent ) } +bool KICAD_CURL_EASY::SetPostFields( + const std::vector>& aFields ) +{ + std::string postfields; + + for( int i = 0; i < aFields.size(); i++ ) + { + if( i > 0 ) + postfields += "&"; + + postfields += Escape( aFields[i].first ); + postfields += "="; + postfields += Escape( aFields[i].second ); + } + + if( setOption( CURLOPT_COPYPOSTFIELDS, postfields.c_str() ) != CURLE_OK ) + return false; + + return true; +} + + bool KICAD_CURL_EASY::SetURL( const std::string& aURL ) { if( setOption( CURLOPT_URL, aURL.c_str() ) == CURLE_OK ) diff --git a/include/kicad_curl/kicad_curl_easy.h b/include/kicad_curl/kicad_curl_easy.h index 3c1d6bc86f..4f46d0f7ed 100644 --- a/include/kicad_curl/kicad_curl_easy.h +++ b/include/kicad_curl/kicad_curl_easy.h @@ -90,6 +90,14 @@ public: */ bool SetUserAgent( const std::string& aAgent ); + /** + * Set fields for application/x-www-form-urlencoded POST request. + * + * @param aFields is the vector of fields (key-value pairs). + * @return True if successful, false if not. + */ + bool SetPostFields( const std::vector>& aFields ); + /** * Set the request URL. *