#23682 closed defect (bug) (fixed)
WP_HTTP may make a redirect request on an unsupported transport
| Reported by: | dd32 | Owned by: | dd32 |
|---|---|---|---|
| Priority: | normal | Milestone: | 3.6 |
| Component: | HTTP API | Version: | |
| Severity: | normal | Keywords: | |
| Cc: | Focuses: |
Description
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.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
In order to achieve this, we also have to take Redirect handling out of PHP Streams (WP_HTTP_Streams) hands, and handle it ourselves.
We already do this for fsockopen and cURL, so this just means we can be 100% sure that each transport handles redirections the same.