KIO Proxy Support Overhaul Part II: KProtocolManager & KIO::Scheduler

Review Request #101037 - Created April 5, 2011 and submitted

Dawit Alemayehu
This the second part of a series of patches designed to improve and bring KIO's proxy support to the levels of KDE 3.5 and beyond. Unlike the first series,, these set of patches are focused on the two classes in KIO that are responsible for providing proxy information to all ioslaves, KProtocolManager and KIO::Scheduler. Here are a list of the changes contained within:

* Add socks proxy support to KProtocolManager.
* Add functions for obtaining multiple proxy URL addresses when configured through PAC scripts.
* Add support for obtaining system proxy information on Windows and Mac platforms. [1]

* Set a new meta-data, "ProxyUrls" with a list of comma separated proxy urls.[2]

[1] Please note that on Linux/Unix platforms system proxy configuration is assumed to be set through enivronment variables and has been supported since the days of KDE 2.0.
[2] The existing meta-data "UseProxy" will still be set with the first url from the list.

David Faure
Thanks for working on this, iirc this is needed by many users.
  1. You are welcome. Yes, a lot of users that rely on PAC files (in corporate settings) have asked for these functionality for a very long time (back to the good old KDE 2.x days). Since no one did anything about it, I decided it is only fitting for me to actually finish what I started a long long time ago.
    BTW, there is still part III and IV of these fixes remaining. Part III is to modify the ioslaves to use multiple proxies as necessary and the last part would be the UI stuff which needs to be simplified and cleaned up a great deal.
kio/kio/kprotocolmanager.h (Diff revision 1)
Shouldn't this return only one proxy server address, as it did before? Otherwise existing code could get broken by this change, I fear.
You added a separate method for getting a stringlist anyway.
  1. Only the documentation is wrong. The function behaves exactly as before. Will revert the unintentional documentation change back.
kio/kio/kprotocolmanager.cpp (Diff revision 1)
s/any/if any/
Commit Hook
This review has been submitted with commit 9d9da095da5fea953e8a3b77a13aff389ed3136b by Dawit Alemayehu.