WP_HTTP may make a redirect request on an unsupported transport
|Reported by:||dd32||Owned by:||dd32|
When WP_HTTP determines which transport to make a request on, several checks are made - including filters and SSL checks.
Consider a scenario where Curl (or fsockopen) doesn't handle HTTPS url's, if a HTTP resource is requested, the checks will pass, and WP_HTTP_Curl will request the document. If that document however then redirects to a HTTPS resource, WP_HTTP_Curl will still try to handle the request, resulting in a failure.
Instead, individual transports should pass the request back to WP_HTTP so that it can process the request and dispatch it in the most appropriate manner.
This would also allow plugins which filter on the 'pre_http_request' filter to properly handle redirects, instead of only the initial request.