/*
* Jirafeau, your web file repository
* Copyright (C) 2008 Julien "axolotl" BERNARD <axolotl@magieeternelle.org>
+ * Copyright (C) 2015 Jerome Jutteau <jerome@jutteau.fr>
+ * Copyright (C) 2024 Jirafeau project <https://gitlab.com/jirafeau> (see AUTHORS.md)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
global $cfg;
// Read config files
-require (JIRAFEAU_ROOT . 'lib/config.original.php');
-if (file_exists(JIRAFEAU_ROOT . 'lib/config.local.php'))
-{
- // read local copy and merge with original values
- $cfgOriginal = $cfg;
- require (JIRAFEAU_ROOT . 'lib/config.local.php');
- $cfg = array_merge($cfgOriginal, $cfg);
- unset($cfgOriginal);
+require(JIRAFEAU_ROOT . 'lib/config.original.php');
+if (file_exists(JIRAFEAU_ROOT . 'lib/config.local.php')) {
+ // read local copy and merge with original values
+ $cfgOriginal = $cfg;
+ require(JIRAFEAU_ROOT . 'lib/config.local.php');
+ $cfg = array_merge($cfgOriginal, $cfg);
+ unset($cfgOriginal);
}
+// Setup debug mode
+if ($cfg['debug'] === true) {
+ @error_reporting(E_ALL);
+} else {
+ @error_reporting(0);
+}
+
+
// Set constants
/* Jirafeau package */
-define ('JIRAFEAU_PACKAGE', 'Jirafeau');
-define ('JIRAFEAU_VERSION', '2.0.0');
+define('JIRAFEAU_PACKAGE', 'Jirafeau');
+define('JIRAFEAU_VERSION', '4.6.x-dev');
+
+define('JIRAFEAU_WEBSITE', 'https://gitlab.com/jirafeau/Jirafeau');
/* Directories. */
-define ('VAR_FILES', $cfg['var_root'] . 'files/');
-define ('VAR_LINKS', $cfg['var_root'] . 'links/');
-define ('VAR_ASYNC', $cfg['var_root'] . 'async/');
-define ('VAR_ALIAS', $cfg['var_root'] . 'alias/');
+define('VAR_FILES', $cfg['var_root'] . 'files/');
+define('VAR_LINKS', $cfg['var_root'] . 'links/');
+define('VAR_ASYNC', $cfg['var_root'] . 'async/');
// helping variable to build absolute link to
// root of the domain without handling the URL scheme
$absPrefix = parse_url($cfg['web_root'], PHP_URL_PATH);
-if(true === empty($absPrefix)) {
- // fallback if installation isnt done yet: relative links to same level on the current page
- $absPrefix = './';
+if (true === empty($absPrefix)) {
+ // fallback if installation isn't done yet: relative links to same level on the current page
+ $absPrefix = './';
}
-define ('JIRAFEAU_ABSPREFIX', $absPrefix);
+define('JIRAFEAU_ABSPREFIX', $absPrefix);
/* Useful constants. */
-if (!defined ('NL')) {
- define ('NL', "\n");
+if (!defined('NL')) {
+ define('NL', "\n");
+}
+if (!defined('QUOTE')) {
+ define('QUOTE', "'");
}
-if (!defined ('QUOTE')) {
- define ('QUOTE', "'");
+
+define('JIRAFEAU_INFINITY', -1);
+define('JIRAFEAU_MINUTE', 60); // 60
+define('JIRAFEAU_HOUR', 3600); // JIRAFEAU_MINUTE * 60
+define('JIRAFEAU_DAY', 86400); // JIRAFEAU_HOUR * 24
+define('JIRAFEAU_WEEK', 604800); // JIRAFEAU_DAY * 7
+define('JIRAFEAU_FORTNIGHT', 1209600); // JIRAFEAU_WEEK * 2
+define('JIRAFEAU_MONTH', 2592000); // JIRAFEAU_DAY * 30
+define('JIRAFEAU_QUARTER', 7776000); // JIRAFEAU_DAY * 90
+define('JIRAFEAU_YEAR', 31536000); // JIRAFEAU_DAY * 365
+
+define('JIRAFEAU_USER_AUTH_BY_IP_NO_PASSWORD', 1);
+define('JIRAFEAU_USER_AUTH_BY_PASSWORD', 2);
+
+define('JIRAFEAU_SODIUM_CHUNKSIZE', 1024);
+
+// Define some Sodium constants from newer PHP versions if they are not available
+
+if (extension_loaded('sodium')) {
+ if (!defined('SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES')) {
+ define('SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES', 32);
+ }
+
+ if (!defined('SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_HEADERBYTES')) {
+ define('SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_HEADERBYTES', 24);
+ }
+
+ if (!defined('SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_ABYTES')) {
+ define('SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_ABYTES', 17);
+ }
}
-define ('JIRAFEAU_INFINITY', -1);
-define ('JIRAFEAU_MINUTE', 60); // 60
-define ('JIRAFEAU_HOUR', 3600); // JIRAFEAU_MINUTE * 60
-define ('JIRAFEAU_DAY', 86400); // JIRAFEAU_HOUR * 24
-define ('JIRAFEAU_WEEK', 604800); // JIRAFEAU_DAY * 7
-define ('JIRAFEAU_MONTH', 2419200); // JIRAFEAU_WEEK * 4
-define ('JIRAFEAU_QUARTER', 7257600); // JIRAFEAU_MONTH * 3
-define ('JIRAFEAU_YEAR', 29030400); // JIRAFEAU_MONTH * 12
+// set UTC as default timezone for all date/time functions
+date_default_timezone_set('UTC');