Proxy handling now detects need for updated credentials.

This revamps the way proxy handling is done to allow us to just proceed as
normal, and then if we get HTTP errors that indicate that we need a proxy or
need proxy credentials, we ask for them and then retry everything.

We still try to auto-detect the need for a proxy on our very first invocation
because on the first invocation, a failure to fetch a URL may well indicate
that a proxy is needed, but that same assumption does not hold on subsequent
invocations. In those later cases, it's probably just a transient network
failure and it would be weird and annoying to pop up the "please provide proxy
config" dialog in those cases.

Thanks pb00068 for getting this ball rolling, even though once again I have
nearly entirely rewritten the PR. I need to kick that habit. :)
This commit is contained in:
Michael Bayne
2019-05-28 17:21:59 -07:00
parent e337ccb743
commit 0a4bfe65c4
14 changed files with 481 additions and 380 deletions
+8
View File
@@ -10,6 +10,14 @@
* Added support for [Proxy Auto-config](https://en.wikipedia.org/wiki/Proxy_auto-config) via PAC
files.
* Proxy handling can now recover from credentials going out of date. It will detect the error and
ask for updated credentials.
* Added `try_no_proxy` system property. This instructs Getdown to always first try to run without a
proxy, regardless of whether it has been configured to use a proxy in the past. And if it can run
without a proxy, it does so for that session, but retains the proxy config for future sessions in
which the proxy may again be needed.
## 1.8.4 - May 14, 2019
* Added `verify_timeout` config to allow customization of the default (60 second) timeout during