#23682 closed defect (bug) (fixed)
WP_HTTP may make a redirect request on an unsupported transport
Reported by: | dd32 | Owned by: | dd32 |
---|---|---|---|
Milestone: | 3.6 | Priority: | normal |
Severity: | normal | Version: | |
Component: | HTTP API | Keywords: | |
Focuses: | Cc: |
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.
Change History (4)
Note: See
TracTickets for help on using
tickets.
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.