define ( 'FRIENDICA_CODENAME', 'Asparagus');
define ( 'FRIENDICA_VERSION', '3.5.2-dev' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
-define ( 'DB_UPDATE_VERSION', 1216 );
+define ( 'DB_UPDATE_VERSION', 1221 );
/**
* @brief Constant with a HTML line break.
define ( 'CP_GLOBAL_COMMUNITY', 1 );
/** @}*/
+/**
+ * @name Protocols
+ *
+ * Different protocols that we are storing
+ * @{
+ */
+define('PROTOCOL_UNKNOWN', 0);
+define('PROTOCOL_DFRN', 1);
+define('PROTOCOL_DIASPORA', 2);
+define('PROTOCOL_OSTATUS_SALMON', 3);
+define('PROTOCOL_OSTATUS_FEED', 4);
+define('PROTOCOL_GS_CONVERSATION', 5);
+/** @}*/
+
/**
* @name Network
*
define ( 'NAMESPACE_OSTATUS', 'http://ostatus.org/schema/1.0' );
define ( 'NAMESPACE_STATUSNET', 'http://status.net/schema/api/1/' );
define ( 'NAMESPACE_ATOM1', 'http://www.w3.org/2005/Atom' );
+define ( 'NAMESPACE_MASTODON', 'http://mastodon.social/schema/1.0' );
/* @}*/
/**
define ( 'ACTIVITY_TAG', NAMESPACE_ACTIVITY_SCHEMA . 'tag' );
define ( 'ACTIVITY_FAVORITE', NAMESPACE_ACTIVITY_SCHEMA . 'favorite' );
define ( 'ACTIVITY_SHARE', NAMESPACE_ACTIVITY_SCHEMA . 'share' );
+define ( 'ACTIVITY_DELETE', NAMESPACE_ACTIVITY_SCHEMA . 'delete' );
define ( 'ACTIVITY_POKE', NAMESPACE_ZOT . '/activity/poke' );
define ( 'ACTIVITY_MOOD', NAMESPACE_ZOT . '/activity/mood' );
startup();
set_include_path(
- 'include' . PATH_SEPARATOR
+ get_include_path() . PATH_SEPARATOR
+ . 'include' . PATH_SEPARATOR
. 'library' . PATH_SEPARATOR
. 'library/langdet' . PATH_SEPARATOR
. '.' );
-
$this->scheme = 'http';
if ((x($_SERVER, 'HTTPS') && $_SERVER['HTTPS']) ||
return false;
}
+ /**
+ * @brief Checks if the minimal memory is reached
+ *
+ * @return bool Is the memory limit reached?
+ */
+ public function min_memory_reached() {
+ $min_memory = Config::get('system', 'min_memory', 0);
+ if ($min_memory == 0) {
+ return false;
+ }
+
+ if (!is_readable("/proc/meminfo")) {
+ return false;
+ }
+
+ $memdata = explode("\n", file_get_contents('/proc/meminfo'));
+
+ $meminfo = array();
+ foreach ($memdata as $line) {
+ list($key, $val) = explode(":", $line);
+ $meminfo[$key] = (int)trim(str_replace("kB", "", $val));
+ $meminfo[$key] = (int)($meminfo[$key] / 1024);
+ }
+
+ if (!isset($meminfo['MemAvailable']) OR !isset($meminfo['MemFree'])) {
+ return false;
+ }
+
+ $free = $meminfo['MemAvailable'] + $meminfo['MemFree'];
+
+ $reached = ($free < $min_memory);
+
+ if ($reached) {
+ logger('Minimal memory reached: '.$free.'/'.$meminfo['MemTotal'].' - limit '.$min_memory, LOGGER_DEBUG);
+ }
+
+ return $reached;
+ }
+
/**
* @brief Checks if the maximum load is reached
*
$cmdline = implode($args, " ");
+ if ($this->min_memory_reached()) {
+ return;
+ }
+
if (get_config('system', 'proc_windows')) {
- proc_close(proc_open('cmd /c start /b ' . $cmdline, array(), $foo, dirname(__FILE__)));
+ $resource = proc_open('cmd /c start /b ' . $cmdline, array(), $foo, dirname(__FILE__));
} else {
- proc_close(proc_open($cmdline . " &", array(), $foo, dirname(__FILE__)));
+ $resource = proc_open($cmdline . " &", array(), $foo, dirname(__FILE__));
}
-
+ if (!is_resource($resource)) {
+ logger('We got no resource for command '.$cmdline, LOGGER_DEBUG);
+ return;
+ }
+ proc_close($resource);
}
/**
// Check if it is usable
if (($temppath != "") AND App::directory_usable($temppath)) {
// To avoid any interferences with other systems we create our own directory
- $new_temppath .= "/".$a->get_hostname();
+ $new_temppath = $temppath."/".$a->get_hostname();
if (!is_dir($new_temppath)) {
/// @TODO There is a mkdir()+chmod() upwards, maybe generalize this (+ configurable) into a function/method?
mkdir($new_temppath);