use Friendica\Model\Photo;
use Friendica\Model\Post;
use Friendica\Model\Tag;
-use Friendica\Network\HTTPRequestOptions;
+use Friendica\Network\HTTPClientOptions;
use Friendica\Object\Image;
use Friendica\Protocol\Activity;
use Friendica\Util\Images;
$text = DI::cache()->get($cache_key);
if (is_null($text)) {
- $curlResult = DI::httpRequest()->head($match[1], [HTTPRequestOptions::TIMEOUT => DI::config()->get('system', 'xrd_timeout')]);
+ $curlResult = DI::httpRequest()->head($match[1], [HTTPClientOptions::TIMEOUT => DI::config()->get('system', 'xrd_timeout')]);
if ($curlResult->isSuccess()) {
$mimetype = $curlResult->getHeader('Content-Type')[0] ?? '';
} else {
return $text;
}
- $curlResult = DI::httpRequest()->head($match[1], [HTTPRequestOptions::TIMEOUT => DI::config()->get('system', 'xrd_timeout')]);
+ $curlResult = DI::httpRequest()->head($match[1], [HTTPClientOptions::TIMEOUT => DI::config()->get('system', 'xrd_timeout')]);
if ($curlResult->isSuccess()) {
$mimetype = $curlResult->getHeader('Content-Type')[0] ?? '';
} else {
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Network\HTTPException;
-use Friendica\Network\HTTPRequestOptions;
+use Friendica\Network\HTTPClientOptions;
use Friendica\Object\Search\ContactResult;
use Friendica\Object\Search\ResultList;
use Friendica\Util\Network;
$return = Contact::searchByName($search, $mode);
} else {
$p = $page > 1 ? 'p=' . $page : '';
- $curlResult = DI::httpRequest()->get(self::getGlobalDirectory() . '/search/people?' . $p . '&q=' . urlencode($search), [HTTPRequestOptions::ACCEPT_CONTENT => ['application/json']]);
+ $curlResult = DI::httpRequest()->get(self::getGlobalDirectory() . '/search/people?' . $p . '&q=' . urlencode($search), [HTTPClientOptions::ACCEPT_CONTENT => ['application/json']]);
if ($curlResult->isSuccess()) {
$searchResult = json_decode($curlResult->getBody(), true);
if (!empty($searchResult['profiles'])) {
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Module\Register;
-use Friendica\Network\HTTPRequestOptions;
+use Friendica\Network\HTTPClientOptions;
use Friendica\Network\IHTTPResult;
use Friendica\Protocol\Relay;
use Friendica\Util\DateTimeFormat;
// When a nodeinfo is present, we don't need to dig further
$xrd_timeout = DI::config()->get('system', 'xrd_timeout');
- $curlResult = DI::httpRequest()->get($url . '/.well-known/nodeinfo', [HTTPRequestOptions::TIMEOUT => $xrd_timeout]);
+ $curlResult = DI::httpRequest()->get($url . '/.well-known/nodeinfo', [HTTPClientOptions::TIMEOUT => $xrd_timeout]);
if ($curlResult->isTimeout()) {
self::setFailure($url);
return false;
// On a redirect follow the new host but mark the old one as failure
if ($curlResult->isSuccess() && (parse_url($url, PHP_URL_HOST) != parse_url($curlResult->getRedirectUrl(), PHP_URL_HOST))) {
- $curlResult = DI::httpRequest()->get($url, [HTTPRequestOptions::TIMEOUT => $xrd_timeout]);
+ $curlResult = DI::httpRequest()->get($url, [HTTPClientOptions::TIMEOUT => $xrd_timeout]);
if (parse_url($url, PHP_URL_HOST) != parse_url($curlResult->getRedirectUrl(), PHP_URL_HOST)) {
Logger::info('Found redirect. Mark old entry as failure', ['old' => $url, 'new' => $curlResult->getRedirectUrl()]);
self::setFailure($url);
$basedata = ['detection-method' => self::DETECT_MANUAL];
}
- $curlResult = DI::httpRequest()->get($baseurl, [HTTPRequestOptions::TIMEOUT => $xrd_timeout]);
+ $curlResult = DI::httpRequest()->get($baseurl, [HTTPClientOptions::TIMEOUT => $xrd_timeout]);
if ($curlResult->isSuccess()) {
if ((parse_url($baseurl, PHP_URL_HOST) != parse_url($curlResult->getRedirectUrl(), PHP_URL_HOST))) {
Logger::info('Found redirect. Mark old entry as failure', ['old' => $url, 'new' => $curlResult->getRedirectUrl()]);
// When the base path doesn't seem to contain a social network we try the complete path.
// Most detectable system have to be installed in the root directory.
// We checked the base to avoid false positives.
- $curlResult = DI::httpRequest()->get($url, [HTTPRequestOptions::TIMEOUT => $xrd_timeout]);
+ $curlResult = DI::httpRequest()->get($url, [HTTPClientOptions::TIMEOUT => $xrd_timeout]);
if ($curlResult->isSuccess()) {
$urldata = self::analyseRootHeader($curlResult, $serverdata);
$urldata = self::analyseRootBody($curlResult, $urldata, $url);
private static function validHostMeta(string $url)
{
$xrd_timeout = DI::config()->get('system', 'xrd_timeout');
- $curlResult = DI::httpRequest()->get($url . '/.well-known/host-meta', [HTTPRequestOptions::TIMEOUT => $xrd_timeout]);
+ $curlResult = DI::httpRequest()->get($url . '/.well-known/host-meta', [HTTPClientOptions::TIMEOUT => $xrd_timeout]);
if (!$curlResult->isSuccess()) {
return false;
}
if (!empty($accesstoken)) {
$api = 'https://instances.social/api/1.0/instances/list?count=0';
- $curlResult = DI::httpRequest()->get($api, [HTTPRequestOptions::HEADERS => ['Authorization' => ['Bearer ' . $accesstoken]]]);
+ $curlResult = DI::httpRequest()->get($api, [HTTPClientOptions::HEADERS => ['Authorization' => ['Bearer ' . $accesstoken]]]);
if ($curlResult->isSuccess()) {
$servers = json_decode($curlResult->getBody(), true);
use Friendica\Database\Database;
use Friendica\Database\DBA;
use Friendica\DI;
-use Friendica\Network\HTTPRequestOptions;
+use Friendica\Network\HTTPClientOptions;
use Friendica\Util\Proxy;
/**
{
$timeout = DI::config()->get('system', 'xrd_timeout');
- $curlResult = DI::httpRequest()->head($url, [HTTPRequestOptions::TIMEOUT => $timeout]);
+ $curlResult = DI::httpRequest()->head($url, [HTTPClientOptions::TIMEOUT => $timeout]);
if ($curlResult->isSuccess()) {
if (empty($media['mimetype'])) {
return $curlResult->getHeader('Content-Type')[0] ?? '';
use Friendica\Model\Item;
use Friendica\Model\Photo;
use Friendica\Model\Post;
-use Friendica\Network\HTTPRequestOptions;
+use Friendica\Network\HTTPClientOptions;
use Friendica\Util\Images;
use Friendica\Util\Network;
use Friendica\Util\ParseUrl;
// Fetch the mimetype or size if missing.
if (empty($media['mimetype']) || empty($media['size'])) {
$timeout = DI::config()->get('system', 'xrd_timeout');
- $curlResult = DI::httpRequest()->head($media['url'], [HTTPRequestOptions::TIMEOUT => $timeout]);
+ $curlResult = DI::httpRequest()->head($media['url'], [HTTPClientOptions::TIMEOUT => $timeout]);
if ($curlResult->isSuccess()) {
if (empty($media['mimetype'])) {
$media['mimetype'] = $curlResult->getHeader('Content-Type')[0] ?? '';
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\User;
-use Friendica\Network\HTTPRequestOptions;
+use Friendica\Network\HTTPClientOptions;
use Friendica\Util\HTTPSignature;
use Friendica\Util\Strings;
);
// Try to get an authentication token from the other instance.
- $curlResult = DI::httpRequest()->get($basepath . '/owa', [HTTPRequestOptions::HEADERS => $header]);
+ $curlResult = DI::httpRequest()->get($basepath . '/owa', [HTTPClientOptions::HEADERS => $header]);
if ($curlResult->isSuccess()) {
$j = json_decode($curlResult->getBody(), true);
$conf = [];
- if (!empty($opts[HTTPRequestOptions::COOKIEJAR])) {
- $jar = new FileCookieJar($opts[HTTPRequestOptions::COOKIEJAR]);
+ if (!empty($opts[HTTPClientOptions::COOKIEJAR])) {
+ $jar = new FileCookieJar($opts[HTTPClientOptions::COOKIEJAR]);
$conf[RequestOptions::COOKIES] = $jar;
}
$headers = [];
- if (!empty($opts[HTTPRequestOptions::ACCEPT_CONTENT])) {
- $headers['Accept'] = $opts[HTTPRequestOptions::ACCEPT_CONTENT];
+ if (!empty($opts[HTTPClientOptions::ACCEPT_CONTENT])) {
+ $headers['Accept'] = $opts[HTTPClientOptions::ACCEPT_CONTENT];
}
- if (!empty($opts[HTTPRequestOptions::LEGACY_HEADER])) {
+ if (!empty($opts[HTTPClientOptions::LEGACY_HEADER])) {
$this->logger->notice('Wrong option \'headers\' used.');
- $headers = array_merge($opts[HTTPRequestOptions::LEGACY_HEADER], $headers);
+ $headers = array_merge($opts[HTTPClientOptions::LEGACY_HEADER], $headers);
}
- if (!empty($opts[HTTPRequestOptions::HEADERS])) {
- $headers = array_merge($opts[HTTPRequestOptions::HEADERS], $headers);
+ if (!empty($opts[HTTPClientOptions::HEADERS])) {
+ $headers = array_merge($opts[HTTPClientOptions::HEADERS], $headers);
}
$conf[RequestOptions::HEADERS] = array_merge($this->client->getConfig(RequestOptions::HEADERS), $headers);
- if (!empty($opts[HTTPRequestOptions::TIMEOUT])) {
- $conf[RequestOptions::TIMEOUT] = $opts[HTTPRequestOptions::TIMEOUT];
+ if (!empty($opts[HTTPClientOptions::TIMEOUT])) {
+ $conf[RequestOptions::TIMEOUT] = $opts[HTTPClientOptions::TIMEOUT];
}
- if (!empty($opts[HTTPRequestOptions::BODY])) {
- $conf[RequestOptions::BODY] = $opts[HTTPRequestOptions::BODY];
+ if (!empty($opts[HTTPClientOptions::BODY])) {
+ $conf[RequestOptions::BODY] = $opts[HTTPClientOptions::BODY];
}
$conf[RequestOptions::ON_HEADERS] = function (ResponseInterface $response) use ($opts) {
- if (!empty($opts[HTTPRequestOptions::CONTENT_LENGTH]) &&
- (int)$response->getHeaderLine('Content-Length') > $opts[HTTPRequestOptions::CONTENT_LENGTH]) {
+ if (!empty($opts[HTTPClientOptions::CONTENT_LENGTH]) &&
+ (int)$response->getHeaderLine('Content-Length') > $opts[HTTPClientOptions::CONTENT_LENGTH]) {
throw new TransferException('The file is too big!');
}
};
{
$opts = [];
- $opts[HTTPRequestOptions::BODY] = $params;
+ $opts[HTTPClientOptions::BODY] = $params;
if (!empty($headers)) {
- $opts[HTTPRequestOptions::HEADERS] = $headers;
+ $opts[HTTPClientOptions::HEADERS] = $headers;
}
if (!empty($timeout)) {
- $opts[HTTPRequestOptions::TIMEOUT] = $timeout;
+ $opts[HTTPClientOptions::TIMEOUT] = $timeout;
}
return $this->request('post', $url, $opts);
--- /dev/null
+<?php
+
+namespace Friendica\Network;
+
+use GuzzleHttp\RequestOptions;
+
+/**
+ * This class contains a list of possible HTTPClient request options.
+ */
+class HTTPClientOptions
+{
+ /**
+ * accept_content: (array) supply Accept: header with 'accept_content' as the value
+ */
+ const ACCEPT_CONTENT = 'accept_content';
+ /**
+ * timeout: (int) out in seconds, default system config value or 60 seconds
+ */
+ const TIMEOUT = RequestOptions::TIMEOUT;
+ /**
+ * cookiejar: (string) path to cookie jar file
+ */
+ const COOKIEJAR = 'cookiejar';
+ /**
+ * headers: (array) header array
+ */
+ const HEADERS = RequestOptions::HEADERS;
+ /**
+ * header: (array) header array (legacy version)
+ */
+ const LEGACY_HEADER = 'header';
+ /**
+ * content_length: (int) maximum File content length
+ */
+ const CONTENT_LENGTH = 'content_length';
+ /**
+ * body: (mixed) Setting the body for sending data
+ */
+ const BODY = RequestOptions::BODY;
+}
+++ /dev/null
-<?php
-
-namespace Friendica\Network;
-
-use GuzzleHttp\RequestOptions;
-
-/**
- * This class contains a list of possible HTTPClient request options.
- */
-class HTTPRequestOptions
-{
- /**
- * accept_content: (array) supply Accept: header with 'accept_content' as the value
- */
- const ACCEPT_CONTENT = 'accept_content';
- /**
- * timeout: (int) out in seconds, default system config value or 60 seconds
- */
- const TIMEOUT = RequestOptions::TIMEOUT;
- /**
- * cookiejar: (string) path to cookie jar file
- */
- const COOKIEJAR = 'cookiejar';
- /**
- * headers: (array) header array
- */
- const HEADERS = RequestOptions::HEADERS;
- /**
- * header: (array) header array (legacy version)
- */
- const LEGACY_HEADER = 'header';
- /**
- * content_length: (int) maximum File content length
- */
- const CONTENT_LENGTH = 'content_length';
- /**
- * body: (mixed) Setting the body for sending data
- */
- const BODY = RequestOptions::BODY;
-}
Logger::info('Probing', ['host' => $host, 'ssl_url' => $ssl_url, 'url' => $url, 'callstack' => System::callstack(20)]);
$xrd = null;
- $curlResult = DI::httpRequest()->get($ssl_url, [HTTPRequestOptions::TIMEOUT => $xrd_timeout, HTTPRequestOptions::ACCEPT_CONTENT => ['application/xrd+xml']]);
+ $curlResult = DI::httpRequest()->get($ssl_url, [HTTPClientOptions::TIMEOUT => $xrd_timeout, HTTPClientOptions::ACCEPT_CONTENT => ['application/xrd+xml']]);
$ssl_connection_error = ($curlResult->getErrorNumber() == CURLE_COULDNT_CONNECT) || ($curlResult->getReturnCode() == 0);
if ($curlResult->isSuccess()) {
$xml = $curlResult->getBody();
}
if (!is_object($xrd) && !empty($url)) {
- $curlResult = DI::httpRequest()->get($url, [HTTPRequestOptions::TIMEOUT => $xrd_timeout, HTTPRequestOptions::ACCEPT_CONTENT => ['application/xrd+xml']]);
+ $curlResult = DI::httpRequest()->get($url, [HTTPClientOptions::TIMEOUT => $xrd_timeout, HTTPClientOptions::ACCEPT_CONTENT => ['application/xrd+xml']]);
$connection_error = ($curlResult->getErrorNumber() == CURLE_COULDNT_CONNECT) || ($curlResult->getReturnCode() == 0);
if ($curlResult->isTimeout()) {
Logger::info('Probing timeout', ['url' => $url]);
*/
private static function getHideStatus($url)
{
- $curlResult = DI::httpRequest()->get($url, [HTTPRequestOptions::CONTENT_LENGTH => 1000000]);
+ $curlResult = DI::httpRequest()->get($url, [HTTPClientOptions::CONTENT_LENGTH => 1000000]);
if (!$curlResult->isSuccess()) {
return false;
}
{
$xrd_timeout = DI::config()->get('system', 'xrd_timeout', 20);
- $curlResult = DI::httpRequest()->get($url, [HTTPRequestOptions::TIMEOUT => $xrd_timeout, HTTPRequestOptions::ACCEPT_CONTENT => [$type]]);
+ $curlResult = DI::httpRequest()->get($url, [HTTPClientOptions::TIMEOUT => $xrd_timeout, HTTPClientOptions::ACCEPT_CONTENT => [$type]]);
if ($curlResult->isTimeout()) {
self::$istimeout = true;
return [];
use Friendica\Model\Post;
use Friendica\Model\Tag;
use Friendica\Model\User;
-use Friendica\Network\HTTPRequestOptions;
+use Friendica\Network\HTTPClientOptions;
use Friendica\Network\Probe;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Images;
self::$conv_list[$conversation] = true;
- $curlResult = DI::httpRequest()->get($conversation, [HTTPRequestOptions::ACCEPT_CONTENT => ['application/atom+xml', 'text/html']]);
+ $curlResult = DI::httpRequest()->get($conversation, [HTTPClientOptions::ACCEPT_CONTENT => ['application/atom+xml', 'text/html']]);
if (!$curlResult->isSuccess() || empty($curlResult->getBody())) {
return;
}
$stored = false;
- $curlResult = DI::httpRequest()->get($related, [HTTPRequestOptions::ACCEPT_CONTENT => ['application/atom+xml', 'text/html']]);
+ $curlResult = DI::httpRequest()->get($related, [HTTPClientOptions::ACCEPT_CONTENT => ['application/atom+xml', 'text/html']]);
if (!$curlResult->isSuccess() || empty($curlResult->getBody())) {
return;
use Friendica\Model\Contact;
use Friendica\Model\User;
use Friendica\Network\CurlResult;
-use Friendica\Network\HTTPRequestOptions;
+use Friendica\Network\HTTPClientOptions;
use Friendica\Network\IHTTPResult;
/**
$header['Signature'] = 'keyId="' . $owner['url'] . '#main-key' . '",algorithm="rsa-sha256",headers="(request-target) date host",signature="' . $signature . '"';
}
- $curl_opts = $opts;
- $curl_opts[HTTPRequestOptions::HEADERS] = $header;
+ $curl_opts = $opts;
+ $curl_opts[HTTPClientOptions::HEADERS] = $header;
if (!empty($opts['nobody'])) {
$curlResult = DI::httpRequest()->head($request, $curl_opts);
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Network\HTTPException;
-use Friendica\Network\HTTPRequestOptions;
+use Friendica\Network\HTTPClientOptions;
/**
* Get information about a given URL
return $siteinfo;
}
- $curlResult = DI::httpRequest()->get($url, [HTTPRequestOptions::CONTENT_LENGTH => 1000000]);
+ $curlResult = DI::httpRequest()->get($url, [HTTPClientOptions::CONTENT_LENGTH => 1000000]);
if (!$curlResult->isSuccess() || empty($curlResult->getBody())) {
return $siteinfo;
}
use Friendica\Model\Item;
use Friendica\Model\Post;
use Friendica\Model\User;
-use Friendica\Network\HTTPRequestOptions;
+use Friendica\Network\HTTPClientOptions;
use Friendica\Protocol\Activity;
use Friendica\Protocol\ActivityPub;
use Friendica\Protocol\Email;
}
$cookiejar = tempnam(get_temppath(), 'cookiejar-onepoll-');
- $curlResult = DI::httpRequest()->get($contact['poll'], [HTTPRequestOptions::COOKIEJAR => $cookiejar]);
+ $curlResult = DI::httpRequest()->get($contact['poll'], [HTTPClientOptions::COOKIEJAR => $cookiejar]);
unlink($cookiejar);
if ($curlResult->isTimeout()) {