# HG changeset patch # User Mike Miller # Date 1381295414 14400 # Node ID ce7b9abf6600fa3c2a592501c2cba7a7417b7c0c # Parent 6b8df90c880668a18161511d5899f8a828a33a50 Keep a copy of url string for older cURL libraries * url-transfer.cc (curl_transfer::url): New data member. (curl_transfer::curl_transfer): Initialize it. (curl_transfer::curl_transfer, curl_transfer::put, curl_transfer::get, curl_transfer::dir, curl_transfer::list, curl_transfer::get_fileinfo, curl_transfer::http_get): Set it to requested url. diff -r 6b8df90c8806 -r ce7b9abf6600 liboctave/util/url-transfer.cc --- a/liboctave/util/url-transfer.cc Tue Oct 08 21:07:43 2013 -0400 +++ b/liboctave/util/url-transfer.cc Wed Oct 09 01:10:14 2013 -0400 @@ -276,7 +276,8 @@ public: curl_transfer (void) - : base_url_transfer (), curl (curl_easy_init ()), errnum (), userpwd () + : base_url_transfer (), curl (curl_easy_init ()), errnum (), url (), + userpwd () { if (curl) valid = true; @@ -287,7 +288,7 @@ curl_transfer (const std::string& host, const std::string& user_arg, const std::string& passwd, std::ostream& os) : base_url_transfer (host, user_arg, passwd, os), - curl (curl_easy_init ()), errnum (), userpwd () + curl (curl_easy_init ()), errnum (), url (), userpwd () { if (curl) valid = true; @@ -299,7 +300,7 @@ init (user_arg, passwd, std::cin, os); - std::string url ("ftp://" + host); + url = "ftp://" + host; SETOPT (CURLOPT_URL, url.c_str ()); // Set up the link, with no transfer. @@ -308,7 +309,7 @@ curl_transfer (const std::string& url, std::ostream& os) : base_url_transfer (url, os), curl (curl_easy_init ()), errnum (), - userpwd () + url (), userpwd () { if (curl) valid = true; @@ -425,7 +426,7 @@ void put (const std::string& file, std::istream& is) { - std::string url = "ftp://" + host_or_url + "/" + file; + url = "ftp://" + host_or_url + "/" + file; SETOPT (CURLOPT_URL, url.c_str ()); SETOPT (CURLOPT_UPLOAD, 1); SETOPT (CURLOPT_NOBODY, 0); @@ -444,7 +445,7 @@ void get (const std::string& file, std::ostream& os) { - std::string url = "ftp://" + host_or_url + "/" + file; + url = "ftp://" + host_or_url + "/" + file; SETOPT (CURLOPT_URL, url.c_str ()); SETOPT (CURLOPT_NOBODY, 0); std::ostream& old_os = set_ostream (os); @@ -461,7 +462,7 @@ void dir (void) { - std::string url = "ftp://" + host_or_url + "/"; + url = "ftp://" + host_or_url + "/"; SETOPT (CURLOPT_URL, url.c_str ()); SETOPT (CURLOPT_NOBODY, 0); @@ -479,7 +480,7 @@ string_vector retval; std::ostringstream buf; - std::string url = "ftp://" + host_or_url + "/"; + url = "ftp://" + host_or_url + "/"; SETOPTR (CURLOPT_WRITEDATA, static_cast (&buf)); SETOPTR (CURLOPT_URL, url.c_str ()); SETOPTR (CURLOPT_DIRLISTONLY, 1); @@ -527,7 +528,7 @@ { std::string path = pwd (); - std::string url = "ftp://" + host_or_url + "/" + path + "/" + filename; + url = "ftp://" + host_or_url + "/" + path + "/" + filename; SETOPT (CURLOPT_URL, url.c_str ()); SETOPT (CURLOPT_FILETIME, 1); SETOPT (CURLOPT_HEADERFUNCTION, throw_away); @@ -605,7 +606,7 @@ void http_get (const Array& param) { - std::string url = host_or_url; + url = host_or_url; std::string query_string = form_query_string (param); @@ -662,6 +663,7 @@ // the handle is released. The curl_handle::curl_handle_rep class // contains the pointer to the CURL handle and so is the best // candidate for storing the strings as well. (bug #36717) + std::string url; std::string userpwd; // No copying!