From e7b06496d2808f93c38d65973a3a19e69bff7ec1 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 31 Oct 2022 17:10:04 +0100 Subject: [PATCH] v2.19.6 --- .../files/usr/local/include/application.ini | 2 +- README.md | 20 +++---- dev/Common/Links.js | 2 +- integrations/cloudron/DESCRIPTION.md | 2 +- integrations/cloudron/Dockerfile | 2 +- .../nextcloud/snappymail/appinfo/info.xml | 2 +- .../snappymail/lib/Util/SnappyMailHelper.php | 2 +- integrations/virtualmin/snappymail.pl | 2 +- package.json | 2 +- plugins/README.md | 2 +- .../RainLoop/Config/AbstractConfig.php | 2 +- snappymail/v/0.0.0/include.php | 56 +++++++++---------- snappymail/v/0.0.0/setup.php | 5 +- 13 files changed, 48 insertions(+), 53 deletions(-) diff --git a/.docker/release/files/usr/local/include/application.ini b/.docker/release/files/usr/local/include/application.ini index 0cce53dc2..d1c88f368 100644 --- a/.docker/release/files/usr/local/include/application.ini +++ b/.docker/release/files/usr/local/include/application.ini @@ -290,5 +290,5 @@ dev_email = "" dev_password = "" [version] -current = "2.19.4" +current = "2.19.6" saved = "Fri, 30 Sep 2022 12:34:56 +0000" diff --git a/README.md b/README.md index 345fef08e..ba38eef0b 100644 --- a/README.md +++ b/README.md @@ -140,26 +140,26 @@ RainLoop 1.17 vs SnappyMail |js/* |RainLoop |Snappy | |--------------- |--------: |--------: | -|admin.js |2.170.153 | 81.500 | -|app.js |4.207.787 | 405.783 | +|admin.js |2.170.153 | 81.545 | +|app.js |4.207.787 | 405.510 | |boot.js | 868.735 | 2.050 | |libs.js | 658.812 | 192.965 | -|sieve.js | 0 | 86.172 | +|sieve.js | 0 | 86.121 | |polyfills.js | 334.608 | 0 | |serviceworker.js | 0 | 285 | -|TOTAL |8.240.095 | 768.755 | +|TOTAL |8.240.095 | 768.476 | |js/min/* |RainLoop |Snappy |RL gzip |SM gzip |RL brotli |SM brotli | |--------------- |--------: |--------: |------: |------: |--------: |--------: | -|admin.min.js | 256.831 | 40.402 | 73.606 | 13.446 | 60.877 | 12.062 | -|app.min.js | 515.367 | 188.273 |139.456 | 62.450 |110.485 | 53.536 | +|admin.min.js | 256.831 | 40.255 | 73.606 | 13.435 | 60.877 | 12.047 | +|app.min.js | 515.367 | 187.781 |139.456 | 62.426 |110.485 | 53.504 | |boot.min.js | 84.659 | 1.252 | 26.998 | 778 | 23.643 | 628 | |libs.min.js | 584.772 | 92.055 |180.901 | 34.113 |155.182 | 30.641 | -|sieve.min.js | 0 | 41.952 | 0 | 10.493 | 0 | 9.465 | +|sieve.min.js | 0 | 41.926 | 0 | 10.484 | 0 | 9.451 | |polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 | -|TOTAL user |1.217.635 | 281.580 |358.761 | 97.341 |299.485 | 84.805 | -|TOTAL user+sieve |1.217.635 | 323.532 |358.761 |107.834 |299.485 | 94.270 | -|TOTAL admin | 959.099 | 133.709 |292.911 | 48.337 |249.877 | 43.331 | +|TOTAL user |1.217.635 | 281.088 |358.761 | 97.317 |299.485 | 84.773 | +|TOTAL user+sieve |1.217.635 | 323.014 |358.761 |107.801 |299.485 | 94.224 | +|TOTAL admin | 959.099 | 133.562 |292.911 | 48.326 |249.877 | 43.316 | For a user its around 70% smaller and faster than traditional RainLoop. diff --git a/dev/Common/Links.js b/dev/Common/Links.js index 2b5417313..38ca6a434 100644 --- a/dev/Common/Links.js +++ b/dev/Common/Links.js @@ -33,7 +33,7 @@ export const */ serverRequestRaw = (type, hash) => SERVER_PREFIX + '/Raw/' + SUB_QUERY_PREFIX + '/' - + '0/' // AuthAccountHash ? + + '0/' // Settings.get('AccountHash') ? + (type ? type + '/' + (hash ? SUB_QUERY_PREFIX + '/' + hash : '') : ''), diff --git a/integrations/cloudron/DESCRIPTION.md b/integrations/cloudron/DESCRIPTION.md index 4311b31f2..ebb05c0b7 100644 --- a/integrations/cloudron/DESCRIPTION.md +++ b/integrations/cloudron/DESCRIPTION.md @@ -1,4 +1,4 @@ -This app packages SnappyMail 2.19.4. +This app packages SnappyMail 2.19.6. SnappyMail is a simple, modern, lightweight & fast web-based email client. diff --git a/integrations/cloudron/Dockerfile b/integrations/cloudron/Dockerfile index cfee21403..80ff1c20d 100644 --- a/integrations/cloudron/Dockerfile +++ b/integrations/cloudron/Dockerfile @@ -4,7 +4,7 @@ RUN mkdir -p /app/code WORKDIR /app/code # If you change the extraction below, be sure to test on scaleway -VERSION=2.19.4 +VERSION=2.19.6 RUN wget https://github.com/the-djmaze/snappymail/releases/download/v${VERSION}/snappymail-${VERSION}.zip -O /tmp/snappymail.zip && \ unzip /tmp/snappymail.zip -d /app/code && \ rm /tmp/snappymail.zip && \ diff --git a/integrations/nextcloud/snappymail/appinfo/info.xml b/integrations/nextcloud/snappymail/appinfo/info.xml index c586a12cf..b9f893369 100644 --- a/integrations/nextcloud/snappymail/appinfo/info.xml +++ b/integrations/nextcloud/snappymail/appinfo/info.xml @@ -3,7 +3,7 @@ snappymail SnappyMail SnappyMail Webmail - 2.19.5 + 2.19.6 agpl SnappyMail, RainLoop Team, Nextgen-Networks, Tab Fitts, Nathan Kinkade, Pierre-Alain Bandinelli getConfig(); if ($ocConfig->getAppValue('snappymail', 'snappymail-autologin', false) || $ocConfig->getAppValue('snappymail', 'snappymail-autologin-with-email', false) diff --git a/integrations/virtualmin/snappymail.pl b/integrations/virtualmin/snappymail.pl index 3de80773f..4ab717f34 100644 --- a/integrations/virtualmin/snappymail.pl +++ b/integrations/virtualmin/snappymail.pl @@ -20,7 +20,7 @@ return "SnappyMail Webmail is a browser-based multilingual IMAP client with an a # script_snappymail_versions() sub script_snappymail_versions { -return ( "2.19.4" ); +return ( "2.19.6" ); } sub script_snappymail_version_desc diff --git a/package.json b/package.json index 802959ff6..1dee795c1 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "title": "SnappyMail", "description": "Simple, modern & fast web-based email client", "private": true, - "version": "2.19.4", + "version": "2.19.6", "homepage": "https://snappymail.eu", "author": { "name": "DJ Maze", diff --git a/plugins/README.md b/plugins/README.md index 843471851..64dd7944f 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -202,7 +202,7 @@ $Plugin->addHook('hook.name', 'functionName'); ### filter.domain params: - \RainLoop\Model\Domain &$oDomain + \RainLoop\Model\Domain $oDomain ### filter.fabrica params: diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Config/AbstractConfig.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Config/AbstractConfig.php index 6152945be..4d3f2190f 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Config/AbstractConfig.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Config/AbstractConfig.php @@ -44,7 +44,7 @@ abstract class AbstractConfig implements \JsonSerializable $this->sFileHeader = $sFileHeader; $this->aData = $this->defaultValues(); - $this->bUseApcCache = APP_USE_APCU_CACHE && + $this->bUseApcCache = defined('APP_USE_APCU_CACHE') && APP_USE_APCU_CACHE && \MailSo\Base\Utils::FunctionsCallable(array('apcu_fetch', 'apcu_store')); } diff --git a/snappymail/v/0.0.0/include.php b/snappymail/v/0.0.0/include.php index 45e08c2a2..1a1f853e4 100644 --- a/snappymail/v/0.0.0/include.php +++ b/snappymail/v/0.0.0/include.php @@ -72,8 +72,6 @@ if (defined('MULTIDOMAIN')) { define('APP_PRIVATE_DATA_NAME', $sPrivateDataFolderInternalName ?: '_default_'); unset($sPrivateDataFolderInternalName); -defined('APP_USE_APCU_CACHE') || define('APP_USE_APCU_CACHE', true); - if (!defined('APP_DATA_FOLDER_PATH')) { $sCustomDataPath = function_exists('__get_custom_data_full_path') ? rtrim(trim(__get_custom_data_full_path()), '\\/') : $sCustomDataPath; define('APP_DATA_FOLDER_PATH', strlen($sCustomDataPath) ? $sCustomDataPath.'/' : APP_INDEX_ROOT_PATH.'data/'); @@ -90,18 +88,38 @@ $sData = is_file(APP_DATA_FOLDER_PATH.'DATA.php') ? file_get_contents(APP_DATA_F define('APP_PRIVATE_DATA', APP_DATA_FOLDER_PATH.'_data_'.($sData ? md5($sData) : '').'/'.APP_PRIVATE_DATA_NAME.'/'); define('APP_PLUGINS_PATH', APP_PRIVATE_DATA.'plugins/'); -// installation checking data folder -if (APP_VERSION !== (is_file(APP_DATA_FOLDER_PATH.'INSTALLED') ? file_get_contents(APP_DATA_FOLDER_PATH.'INSTALLED') : '') - || !is_dir(APP_PRIVATE_DATA)) -{ - include APP_VERSION_ROOT_PATH.'setup.php'; -} - ini_set('default_charset', 'UTF-8'); ini_set('internal_encoding', 'UTF-8'); mb_internal_encoding('UTF-8'); mb_language('uni'); +if (!defined('SNAPPYMAIL_LIBRARIES_PATH')) { + define('SNAPPYMAIL_LIBRARIES_PATH', rtrim(realpath(__DIR__), '\\/').'/app/libraries/'); + + if (false === set_include_path(SNAPPYMAIL_LIBRARIES_PATH . PATH_SEPARATOR . get_include_path())) { + exit('set_include_path() failed. Probably due to Apache config using php_admin_value instead of php_value'); + } + + spl_autoload_extensions('.php'); + /** lowercase autoloader */ + spl_autoload_register(); + /** case-sensitive autoloader */ + spl_autoload_register(function($sClassName){ + $file = SNAPPYMAIL_LIBRARIES_PATH . strtr($sClassName, '\\', DIRECTORY_SEPARATOR) . '.php'; +// if ($file = stream_resolve_include_path(strtr($sClassName, '\\', DIRECTORY_SEPARATOR) . '.php')) { + if (is_file($file)) { + include_once $file; + } + }); +} + +// installation checking data folder +if (APP_VERSION !== (is_file(APP_DATA_FOLDER_PATH.'INSTALLED') ? file_get_contents(APP_DATA_FOLDER_PATH.'INSTALLED') : '') + || !is_dir(APP_PRIVATE_DATA)) +{ + include __DIR__ . '/setup.php'; +} + $sSalt = is_file(APP_DATA_FOLDER_PATH.'SALT.php') ? trim(file_get_contents(APP_DATA_FOLDER_PATH.'SALT.php')) : ''; if (!$sSalt) { // random salt @@ -142,26 +160,6 @@ if (!ini_get('zlib.output_compression') && !ini_get('brotli.output_compression') } } -if (!defined('RAINLOOP_APP_LIBRARIES_PATH')) { - define('RAINLOOP_APP_LIBRARIES_PATH', rtrim(realpath(__DIR__), '\\/').'/app/libraries/'); - - if (false === set_include_path(RAINLOOP_APP_LIBRARIES_PATH . PATH_SEPARATOR . get_include_path())) { - exit('set_include_path() failed. Probably due to Apache config using php_admin_value instead of php_value'); - } - - spl_autoload_extensions('.php'); - /** lowercase autoloader */ - spl_autoload_register(); - /** case-sensitive autoloader */ - spl_autoload_register(function($sClassName){ - $file = RAINLOOP_APP_LIBRARIES_PATH . strtr($sClassName, '\\', DIRECTORY_SEPARATOR) . '.php'; -// if ($file = stream_resolve_include_path(strtr($sClassName, '\\', DIRECTORY_SEPARATOR) . '.php')) { - if (is_file($file)) { - include_once $file; - } - }); -} - if (class_exists('RainLoop\\Api')) { RainLoop\Api::Handle(); // NextCloud/OwnCloud? diff --git a/snappymail/v/0.0.0/setup.php b/snappymail/v/0.0.0/setup.php index 0aa852987..6fe37158e 100644 --- a/snappymail/v/0.0.0/setup.php +++ b/snappymail/v/0.0.0/setup.php @@ -156,10 +156,7 @@ if (defined('APP_VERSION')) } } -// require __DIR__ . '/app/libraries/snappymail/idn.php'; -// require __DIR__ . '/app/libraries/snappymail/intl/idn.php'; -// $sName = \SnappyMail\IDN::toAscii(mb_strtolower(gethostname())); - $sName = mb_strtolower(gethostname()); + $sName = \SnappyMail\IDN::toAscii(mb_strtolower(gethostname())); $sFile = APP_PRIVATE_DATA.'domains/'.$sName.'.json'; if (!file_exists($sFile) && !file_exists(APP_PRIVATE_DATA.'domains/'.$sName.'.ini')) { $config = json_decode(file_get_contents(__DIR__ . '/app/domains/default.json'), true);