Commit Graph

126 Commits

Author SHA1 Message Date
Zach Borboa 8fdb39bbaf Fix #718: Ensure cURL handle is passed to curl_multi_info_read()
Error message:
    curl_multi_info_read(): supplied resource is not a valid cURL handle resource
2022-06-23 15:24:53 -04:00
Zach Borboa 523386ec01 Fix #714: Attempt to stop active requests when MultiCurl::stop() is called 2022-06-23 08:26:20 -04:00
Zach Borboa 12b5757c22 Implement MultiCurl::stop() 2022-03-10 18:29:48 -08:00
Zach Borboa dc4d0db091 Rename variable 2022-03-10 18:29:40 -08:00
Theodoros-Franz Gerakitis e999cb4e25 Fix #686: Build url without using data parameter
Also for PATCH, PUT & SEARCH requests
2021-11-23 23:23:08 -05:00
Zach Borboa 92a8f3bbe2 Fix #686: Build url without using data parameter 2021-11-20 23:43:44 -05:00
Zach Borboa 3d9acedb66 Correct the post/redirect/get logic when using MultiCurl::addPost() 2021-11-20 22:17:32 -05:00
Zach Borboa cd825550b2 Fix Curl::downloadFileName not being correctly set 2021-07-26 20:17:14 -04:00
Zach Borboa 7af4a8d383 Fix some errors caused by using strict types 2021-07-26 10:08:44 -04:00
Zach Borboa bb1a190071 Use strict types 2021-07-26 00:48:18 -04:00
Zach Borboa 73dfde67e2 Modernize type casting 2021-07-25 23:53:32 -04:00
Zach Borboa 250421927f Add additional Curl::set* and MultiCurl::set* helper methods 2021-06-17 11:14:29 -04:00
Zach Borboa fe829855cb Fix #670: Add additional checks before attempting to close curl handles 2021-06-09 20:58:33 -04:00
Zach Borboa b1f05c117a Clean up 2021-03-24 01:23:05 -04:00
Zach Borboa 0194365f71 Fix MultiCurl base url being overwritten by the most recently set url
Previously, when using MultiCurl and updating the url after instances
have already been initialized, the most recently specified base url
would be used for the requests. This change fixes using relative urls
with MultiCurl::add* methods and allows instance-specific base urls to
be used.
2021-03-23 23:56:29 -04:00
Zach Borboa e1ff6e870d Add import 2021-03-23 11:21:39 -04:00
Zach Borboa 06ca377f64 Add support for using relative urls with MultiCurl::add*() methods
This change allows setting a base url with MultiCurl and adding requests
using relative paths.

Fixes #628.
2021-03-23 11:03:39 -04:00
harry 0671a73de9 Fix base_url on MultiCurl 2021-03-22 23:12:08 -04:00
Zach Borboa 161f9aea63 Use short array syntax 2021-03-18 01:15:52 -04:00
Zach Borboa 7bf3868c6d Update docblock for params that expect callables or nulls
Would use callable type declarations, but the functions accept both a
callables and nulls which would require union types (available in 8.x).
2021-03-17 22:40:46 -04:00
Zach Borboa b94ce189b3 Add properties MultiCurl::startTime and MultiCurl::stopTime 2021-03-17 00:06:15 -04:00
Zach Borboa 1ef5fce3df Decrease curl_multi_select() timeout so pending requests may have more accurate start times 2021-03-16 21:02:58 -04:00
Zach Borboa af08135139 Fix flaky rate limit tests caused by inconsistent sleep times 2021-03-14 00:07:54 -05:00
Philipp Keck 933e0bb76b Fix close() under PHP8
Fixes #662

At least on some platforms, maybe always with PHP8, is_resource(curl_init())===false because it returns the new \CurlHandle type instead.
2021-03-13 18:23:09 -05:00
Zach Borboa eac149a259 Clean up 2021-03-13 17:37:47 -05:00
Zach Borboa 3d8e4c38c2 Allow passing an indexed array to MultiCurl::setHeaders() 2020-10-31 14:59:35 -07:00
Zach Borboa cea618a6c1 Update docblock with possible exceptions thrown 2020-10-30 21:32:43 -07:00
Zach Borboa cec296410a Clean up 2020-05-17 18:53:13 -07:00
Zach Borboa 976008d094 Implement rate limiting requests via MultiCurl::setRateLimit() 2020-05-16 22:01:15 -07:00
Zach Borboa ab407d6b25 Implement disableTimeout()
Implement Curl::disableTimeout() and MultiCurl::disableTimeout()
2020-05-09 09:19:35 -07:00
Zach Borboa 85c9a1a5e9 Clean up 2020-04-10 19:31:28 -07:00
harry 09006e0e26 Implement setInterface()
Implement Curl::setInterface() and MultiCurl::setInterface()
2020-04-10 12:02:41 +05:30
Zach Borboa cf9ab59780 Use setFile() 2020-01-14 21:01:04 -08:00
Zach Borboa 15a6a4dd98 Use setRange() 2020-01-14 20:58:42 -08:00
Zach Borboa a020585a73 Fix #608: Implement Curl::setRange() and MultiCurl::setRange() 2020-01-14 20:55:41 -08:00
Zach Borboa 1d0f6cfc84 Fix #609: Implement Curl::setFile() and MultiCurl::setFile() 2020-01-14 20:36:19 -08:00
Zach Borboa 2d591c3b7c Fix lingering temporary download file when using MultiCurl::addDownload() (#602) 2019-11-17 00:19:57 -08:00
Zach Borboa 7b70bc2697 Fix #602: Unify download implementation of MultiCurl::addDownload with Curl::download 2019-10-14 00:08:41 -07:00
Zach Borboa 505663a55d Use camelCase for ArrayUtil function names and deprecate old snake_case names 2019-06-09 22:26:18 -07:00
Zach Borboa 9a538f3a6b Reduce number of ops 2019-05-12 21:13:10 -07:00
Zach Borboa 0857023319 Fix #572,#582: Add MultiCurl::setProxies() to make multicurl requests with multiple proxies 2019-05-12 01:01:57 -07:00
Zach Borboa 8e5a0a29c3 Correct implementation of MultiCurl::setProxyAuth() 2019-05-11 23:04:55 -07:00
Zach Borboa 6f76666ee5 Clarify documentation for Curl::setRetry() and MultiCurl::setRetry() 2019-05-03 00:35:30 -07:00
Zach Borboa 35a32a7a77 Fix #567: Add proxy support for MultiCurl 2019-01-05 00:43:21 -08:00
Zach Borboa cdad9e1a01 Rename variable to use isChildOfMultiCurl as method name 2018-07-07 03:59:46 -07:00
Zach Borboa e240b43606 Fix #511: Use correct body in POST requests that use empty data arrays.
This fixes JSON POST requests incorrectly sending a serialized empty
array "[]" instead of an empty request body by default.
2018-04-26 02:49:21 -07:00
Zach Borboa a028011f3d Fix #506: Remove content-length header for PATCH requests when data is empty 2018-04-09 01:03:40 -07:00
Zach Borboa 83cd9d14ee Update comment to match new behavior 2018-03-06 22:17:38 -08:00
agapov97 caf1ec2062 multicurl - starting new requests while curls array is not empty and activeCurls array size less than concurrency 2018-02-26 17:21:21 +03:00
Zach Borboa 40f7026185 Fix #493: Build POST data correctly when headers have been set.
Call MultiCurl::queueHandle sooner so that headers are correctly set when Curl::buildPostData is called and builds POST data differently depending on the request content-type.
2018-01-26 00:58:37 -08:00