# HG changeset patch # User Rik # Date 1674675174 28800 # Node ID 22b12276375e1fdd91f0f36c5647c082f31ddb66 # Parent c815d3e06c53cd5367cc8140112004d52e66275c Re-code interface to liburl to avoid deprecated features (bug #63573). * url-transfer.cc (get_fileinfo): Use new libcurl name "CURLINFO_CONTENT_LENGTH_DOWNLOAD_T" in call to curl_easy_getinfo(). * url-transfer.cc (form_data_post): Recode to use curl_mime and curl_mimepart rather than curl_formadd(). diff -r c815d3e06c53 -r 22b12276375e liboctave/util/url-transfer.cc --- a/liboctave/util/url-transfer.cc Wed Jan 25 09:36:00 2023 -0800 +++ b/liboctave/util/url-transfer.cc Wed Jan 25 11:32:54 2023 -0800 @@ -577,7 +577,7 @@ curl_easy_getinfo (m_curl, CURLINFO_FILETIME, &ft); filetime = ft; double fs; - curl_easy_getinfo (m_curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &fs); + curl_easy_getinfo (m_curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, &fs); filesize = fs; SETOPT (CURLOPT_WRITEFUNCTION, write_data); @@ -712,12 +712,12 @@ // path of the file as its value. void form_data_post (const Array& param) { - struct curl_httppost *post = nullptr; - struct curl_httppost *last = nullptr; + curl_mime *mime = nullptr; + curl_mimepart *part = nullptr; SETOPT (CURLOPT_URL, m_host_or_url.c_str ()); - unwind_action cleanup_httppost ([=] () { curl_formfree (post); }); + unwind_action cleanup_mime ([=] () { curl_mime_free (mime); }); if (param.numel () >= 2) { @@ -726,15 +726,15 @@ std::string name = param(i); std::string data = param(i+1); + part = curl_mime_addpart (mime); + curl_mime_name (part, name.c_str ()); if (name == "file") - curl_formadd (&post, &last, CURLFORM_COPYNAME, name.c_str (), - CURLFORM_FILE, data.c_str (), CURLFORM_END); + curl_mime_filedata (part, data.c_str ()); else - curl_formadd(&post, &last, CURLFORM_COPYNAME, name.c_str (), - CURLFORM_COPYCONTENTS, data.c_str (), CURLFORM_END); + curl_mime_data (part, data.c_str (), CURL_ZERO_TERMINATED); } - SETOPT (CURLOPT_HTTPPOST, post); + SETOPT (CURLOPT_HTTPPOST, mime); } perform ();