<?php
/**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
namespace Friendica\Core;
-use Exception;
-use Friendica\App;
use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\DI;
+use Friendica\Module\Response;
use Friendica\Network\HTTPException\FoundException;
use Friendica\Network\HTTPException\MovedPermanentlyException;
use Friendica\Network\HTTPException\TemporaryRedirectException;
*/
private $logger;
- /**
- * @var App\Mode
- */
- private $mode;
-
/**
* @var IManageConfigValues
*/
*/
private $basePath;
- public function __construct(LoggerInterface $logger, App\Mode $mode, IManageConfigValues $config, string $basepath)
+ public function __construct(LoggerInterface $logger, IManageConfigValues $config, string $basepath)
{
$this->logger = $logger;
- $this->mode = $mode;
$this->config = $config;
$this->basePath = $basepath;
}
*/
public function isMinMemoryReached(): bool
{
+ // Deactivated, needs more investigating if this check really makes sense
+ return false;
+
+ /*
+ * Commented out to suppress static analyzer issues
+ *
$min_memory = $this->config->get('system', 'min_memory', 0);
if ($min_memory == 0) {
return false;
}
return $reached;
+ */
}
/**
*/
public function isMaxLoadReached(): bool
{
- if ($this->mode->isBackend()) {
- $process = 'backend';
- $maxsysload = intval($this->config->get('system', 'maxloadavg'));
- if ($maxsysload < 1) {
- $maxsysload = 50;
- }
- } else {
- $process = 'frontend';
- $maxsysload = intval($this->config->get('system', 'maxloadavg_frontend'));
- if ($maxsysload < 1) {
- $maxsysload = 50;
- }
+ $maxsysload = intval($this->config->get('system', 'maxloadavg'));
+ if ($maxsysload < 1) {
+ $maxsysload = 50;
}
$load = System::currentLoad();
if ($load) {
if (intval($load) > $maxsysload) {
- $this->logger->warning('system load for process too high.', ['load' => $load, 'process' => $process, 'maxsysload' => $maxsysload]);
+ $this->logger->warning('system load for process too high.', ['load' => $load, 'process' => 'backend', 'maxsysload' => $maxsysload]);
return true;
}
}
$this->logger->warning('We got no resource for command.', ['command' => $cmdline]);
return;
}
+
proc_close($resource);
$this->logger->info('Executed "proc_open"', ['command' => $cmdline, 'callstack' => System::callstack(10)]);
Logger::notice('xml_status returning non_zero: ' . $st . " message=" . $message);
}
- header("Content-type: text/xml");
-
- $xmldata = ["result" => $result];
-
- echo XML::fromArray($xmldata, $xml);
+ DI::apiResponse()->setType(Response::TYPE_XML);
+ DI::apiResponse()->addContent(XML::fromArray(["result" => $result], $xml));
+ DI::page()->exit(DI::apiResponse()->generate());
exit();
}
public static function httpExit($val, $message = '', $content = '')
{
if ($val >= 400) {
- Logger::debug('Exit with error', ['code' => $val, 'message' => $message, 'callstack' => System::callstack(20), 'method' => $_SERVER['REQUEST_METHOD'], 'agent' => $_SERVER['HTTP_USER_AGENT'] ?? '']);
+ Logger::debug('Exit with error', ['code' => $val, 'message' => $message, 'callstack' => System::callstack(20), 'method' => DI::args()->getMethod(), 'agent' => $_SERVER['HTTP_USER_AGENT'] ?? '']);
}
- header($_SERVER["SERVER_PROTOCOL"] . ' ' . $val . ' ' . $message);
-
- echo $content;
+ DI::apiResponse()->setStatus($val, $message);
+ DI::apiResponse()->addContent($content);
+ DI::page()->exit(DI::apiResponse()->generate());
exit();
}
public static function jsonError($httpCode, $data, $content_type = 'application/json')
{
if ($httpCode >= 400) {
- Logger::debug('Exit with error', ['code' => $httpCode, 'content_type' => $content_type, 'callstack' => System::callstack(20), 'method' => $_SERVER['REQUEST_METHOD'], 'agent' => $_SERVER['HTTP_USER_AGENT'] ?? '']);
+ Logger::debug('Exit with error', ['code' => $httpCode, 'content_type' => $content_type, 'callstack' => System::callstack(20), 'method' => DI::args()->getMethod(), 'agent' => $_SERVER['HTTP_USER_AGENT'] ?? '']);
}
- header($_SERVER["SERVER_PROTOCOL"] . ' ' . $httpCode);
+ DI::apiResponse()->setStatus($httpCode);
self::jsonExit($data, $content_type);
}
* @param integer $options JSON options
*/
public static function jsonExit($x, $content_type = 'application/json', int $options = 0) {
- header("Content-type: $content_type");
- echo json_encode($x, $options);
+ DI::apiResponse()->setType(Response::TYPE_JSON, $content_type);
+ DI::apiResponse()->addContent(json_encode($x, $options));
+ DI::page()->exit(DI::apiResponse()->generate());
exit();
}
*/
public static function htmlUpdateExit($o)
{
- header("Content-type: text/html");
+ DI::apiResponse()->setType(Response::TYPE_HTML);
echo "<!DOCTYPE html><html><body>\r\n";
// We can remove this hack once Internet Explorer recognises HTML5 natively
echo "<section>";