aboutsummaryrefslogtreecommitdiff
path: root/app/Utils/httpUtil.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Utils/httpUtil.php')
-rw-r--r--app/Utils/httpUtil.php12
1 files changed, 6 insertions, 6 deletions
diff --git a/app/Utils/httpUtil.php b/app/Utils/httpUtil.php
index 2b57b410f..6e176a0d3 100644
--- a/app/Utils/httpUtil.php
+++ b/app/Utils/httpUtil.php
@@ -5,7 +5,7 @@ final class FreshRSS_http_Util {
private const RETRY_AFTER_PATH = DATA_PATH . '/Retry-After/';
- private static function getRetryAfterFile(string $url): string {
+ private static function getRetryAfterFile(string $url, string $proxy): string {
$domain = parse_url($url, PHP_URL_HOST);
if (!is_string($domain) || $domain === '') {
return '';
@@ -14,7 +14,7 @@ final class FreshRSS_http_Util {
if (is_int($port)) {
$domain .= ':' . $port;
}
- return self::RETRY_AFTER_PATH . urlencode($domain) . '.txt';
+ return self::RETRY_AFTER_PATH . urlencode($domain) . (empty($proxy) ? '' : ('_' . urlencode($proxy))) . '.txt';
}
/**
@@ -39,11 +39,11 @@ final class FreshRSS_http_Util {
* Check whether the URL needs to wait for a Retry-After period.
* @return int The timestamp of when the Retry-After expires, or 0 if not set.
*/
- public static function getRetryAfter(string $url): int {
+ public static function getRetryAfter(string $url, string $proxy): int {
if (rand(0, 30) === 1) { // Remove old files once in a while
self::cleanRetryAfters();
}
- $txt = self::getRetryAfterFile($url);
+ $txt = self::getRetryAfterFile($url, $proxy);
if ($txt === '') {
return 0;
}
@@ -61,8 +61,8 @@ final class FreshRSS_http_Util {
/**
* Store the HTTP Retry-After header value of an HTTP `429 Too Many Requests` or `503 Service Unavailable` response.
*/
- public static function setRetryAfter(string $url, string $retryAfter): int {
- $txt = self::getRetryAfterFile($url);
+ public static function setRetryAfter(string $url, string $proxy, string $retryAfter): int {
+ $txt = self::getRetryAfterFile($url, $proxy);
if ($txt === '') {
return 0;
}