You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The official libcurl solution to abort a running HTTP request is to return a non-zero value from the onProgress callback (http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTPROGRESSFUNCTION).
The problem is that std.net.curl will throw an unspecific CurlException, so the API offers no way to handle that error.
----
import std.net.curl;
void main()
{
auto http = HTTP("www.example.com");
http.onProgress = (dltot, dlnow, ultot, ulnow)
{
if (dlnow > 1024)
return 1;
return 0;
};
http.perform();
}
----
std.net.curl.CurlException@std/net/curl.d(3592): Operation was aborted by an application callback on handle 1C94B00
----
I think allowing to pass a boolean to perform() so it returns the error code instead of throwing an error would be a good solution. Note that this is already possible for Curl.perform but not with HTTP.perform, FTP.perform or SMTP.perform.
http://dlang.org/phobos/std_net_curl.html#.Curl.performhttp://dlang.org/phobos/std_net_curl.html#.HTTP.performhttp://dlang.org/phobos/std_net_curl.html#.FTP.performhttp://dlang.org/phobos/std_net_curl.html#.SMTP.perform
The text was updated successfully, but these errors were encountered:
> Note that this is already possible for Curl.perform but not with HTTP.perform, FTP.perform or SMTP.perform.
Shouldn't this be closed since all of mentioned `perform` functions accept `ThrowOnError` attribute?
dlang-bugzilla (@CyberShadow) commented on 2017-07-02T02:42:46Z
(In reply to sigod from comment #1)
> Shouldn't this be closed since all of mentioned `perform` functions accept> `ThrowOnError` attribute?
Martin, ping, is this still actionable?
code (@MartinNowak) reported this on 2014-06-12T00:16:10Z
Transfered from https://issues.dlang.org/show_bug.cgi?id=12895
CC List
Description
The text was updated successfully, but these errors were encountered: