Changeset 3000905
- Timestamp:
- 11/23/2023 11:33:58 PM (2 years ago)
- Location:
- wpsynchro
- Files:
-
- 143 added
- 10 edited
-
tags/1.11.2 (added)
-
tags/1.11.2/LICENSE.txt (added)
-
tags/1.11.2/changelog.txt (added)
-
tags/1.11.2/dist (added)
-
tags/1.11.2/dist/ad1a7bb1dc057be5c9a6929d1aaa4f7d.png (added)
-
tags/1.11.2/dist/deactivation.js (added)
-
tags/1.11.2/dist/manifest.json (added)
-
tags/1.11.2/dist/wpsynchro-0d528764ef192093f940.css (added)
-
tags/1.11.2/dist/wpsynchro-25447df84937f7f0e1c1.css (added)
-
tags/1.11.2/dist/wpsynchro.js (added)
-
tags/1.11.2/dist/wpsynchro.js.LICENSE.txt (added)
-
tags/1.11.2/languages (added)
-
tags/1.11.2/languages/wpsynchro.pot (added)
-
tags/1.11.2/readme.txt (added)
-
tags/1.11.2/src (added)
-
tags/1.11.2/src/API (added)
-
tags/1.11.2/src/API/ClientSyncDatabase.php (added)
-
tags/1.11.2/src/API/DatabaseBackup.php (added)
-
tags/1.11.2/src/API/DownloadLog.php (added)
-
tags/1.11.2/src/API/ExecuteAction.php (added)
-
tags/1.11.2/src/API/FileFinalize.php (added)
-
tags/1.11.2/src/API/FileTransfer.php (added)
-
tags/1.11.2/src/API/Filesystem.php (added)
-
tags/1.11.2/src/API/GetFiles.php (added)
-
tags/1.11.2/src/API/HealthCheck.php (added)
-
tags/1.11.2/src/API/Initiate.php (added)
-
tags/1.11.2/src/API/LoadAPI.php (added)
-
tags/1.11.2/src/API/MasterData.php (added)
-
tags/1.11.2/src/API/Migrate.php (added)
-
tags/1.11.2/src/API/PopulateFileList.php (added)
-
tags/1.11.2/src/API/PopulateFileListStatus.php (added)
-
tags/1.11.2/src/API/SaveMigration.php (added)
-
tags/1.11.2/src/API/Status.php (added)
-
tags/1.11.2/src/API/StatusFileChanges.php (added)
-
tags/1.11.2/src/API/VerifyMigration.php (added)
-
tags/1.11.2/src/API/WPSynchroService.php (added)
-
tags/1.11.2/src/Database (added)
-
tags/1.11.2/src/Database/DatabaseFinalize.php (added)
-
tags/1.11.2/src/Database/DatabaseHelperFunctions.php (added)
-
tags/1.11.2/src/Database/DatabaseSync.php (added)
-
tags/1.11.2/src/Database/Exception (added)
-
tags/1.11.2/src/Database/Exception/SerializedStringException.php (added)
-
tags/1.11.2/src/Database/SerializedStringHandler.php (added)
-
tags/1.11.2/src/Database/Table.php (added)
-
tags/1.11.2/src/Database/TableColumns.php (added)
-
tags/1.11.2/src/Finalize (added)
-
tags/1.11.2/src/Finalize/FinalizeSync.php (added)
-
tags/1.11.2/src/Initiate (added)
-
tags/1.11.2/src/Initiate/InitiateSync.php (added)
-
tags/1.11.2/src/Initiate/InitiateTokenRetrieval.php (added)
-
tags/1.11.2/src/Logger (added)
-
tags/1.11.2/src/Logger/FileLogger.php (added)
-
tags/1.11.2/src/Logger/LoggerInterface.php (added)
-
tags/1.11.2/src/Logger/MemoryLogger.php (added)
-
tags/1.11.2/src/Logger/NullLogger.php (added)
-
tags/1.11.2/src/Logger/SyncMetadataLog.php (added)
-
tags/1.11.2/src/Masterdata (added)
-
tags/1.11.2/src/Masterdata/MasterdataRetrieval.php (added)
-
tags/1.11.2/src/Masterdata/MasterdataSync.php (added)
-
tags/1.11.2/src/Migration (added)
-
tags/1.11.2/src/Migration/Job.php (added)
-
tags/1.11.2/src/Migration/Migration.php (added)
-
tags/1.11.2/src/Migration/MigrationController.php (added)
-
tags/1.11.2/src/Migration/MigrationFactory.php (added)
-
tags/1.11.2/src/Pages (added)
-
tags/1.11.2/src/Pages/AdminAddEdit.php (added)
-
tags/1.11.2/src/Pages/AdminChangelog.php (added)
-
tags/1.11.2/src/Pages/AdminLog.php (added)
-
tags/1.11.2/src/Pages/AdminOverview.php (added)
-
tags/1.11.2/src/Pages/AdminRunSync.php (added)
-
tags/1.11.2/src/Pages/AdminSetup.php (added)
-
tags/1.11.2/src/Pages/AdminSupport.php (added)
-
tags/1.11.2/src/Status (added)
-
tags/1.11.2/src/Status/MigrateStatus.php (added)
-
tags/1.11.2/src/Templates (added)
-
tags/1.11.2/src/Templates/card-facebook.php (added)
-
tags/1.11.2/src/Templates/card-mailinglist.php (added)
-
tags/1.11.2/src/Templates/card-pro-version.php (added)
-
tags/1.11.2/src/Transport (added)
-
tags/1.11.2/src/Transport/BasicAuth.php (added)
-
tags/1.11.2/src/Transport/Destination.php (added)
-
tags/1.11.2/src/Transport/RemoteConnection.php (added)
-
tags/1.11.2/src/Transport/RemoteTestTransport.php (added)
-
tags/1.11.2/src/Transport/RemoteTransport.php (added)
-
tags/1.11.2/src/Transport/RemoteTransportResult.php (added)
-
tags/1.11.2/src/Transport/ReturnResult.php (added)
-
tags/1.11.2/src/Transport/Transfer.php (added)
-
tags/1.11.2/src/Transport/TransferAccessKey.php (added)
-
tags/1.11.2/src/Transport/TransferFile.php (added)
-
tags/1.11.2/src/Transport/TransferToken.php (added)
-
tags/1.11.2/src/Utilities (added)
-
tags/1.11.2/src/Utilities/Actions (added)
-
tags/1.11.2/src/Utilities/Actions.php (added)
-
tags/1.11.2/src/Utilities/Actions/Action.php (added)
-
tags/1.11.2/src/Utilities/Actions/ClearCachesOnSuccess.php (added)
-
tags/1.11.2/src/Utilities/Actions/ClearCurrentTransfer.php (added)
-
tags/1.11.2/src/Utilities/Actions/ClearTransients.php (added)
-
tags/1.11.2/src/Utilities/Actions/EmailOnSyncFailure.php (added)
-
tags/1.11.2/src/Utilities/Actions/EmailOnSyncSuccess.php (added)
-
tags/1.11.2/src/Utilities/Activation.php (added)
-
tags/1.11.2/src/Utilities/CommonFunctions.php (added)
-
tags/1.11.2/src/Utilities/Compatibility (added)
-
tags/1.11.2/src/Utilities/Compatibility/Compatibility.php (added)
-
tags/1.11.2/src/Utilities/Compatibility/MUPluginHandler.php (added)
-
tags/1.11.2/src/Utilities/Compatibility/wpsynchro-mu-plugin-compat.php (added)
-
tags/1.11.2/src/Utilities/Compatibility/wpsynchro_compat_theme (added)
-
tags/1.11.2/src/Utilities/Compatibility/wpsynchro_compat_theme/functions.php (added)
-
tags/1.11.2/src/Utilities/Configuration (added)
-
tags/1.11.2/src/Utilities/Configuration/PluginConfiguration.php (added)
-
tags/1.11.2/src/Utilities/DatabaseTables.php (added)
-
tags/1.11.2/src/Utilities/DebugInformation.php (added)
-
tags/1.11.2/src/Utilities/ErrorHandler (added)
-
tags/1.11.2/src/Utilities/ErrorHandler/CustomPHPErrorHandler.php (added)
-
tags/1.11.2/src/Utilities/JSData (added)
-
tags/1.11.2/src/Utilities/JSData/DeactivatePluginData.php (added)
-
tags/1.11.2/src/Utilities/JSData/HealthCheckData.php (added)
-
tags/1.11.2/src/Utilities/JSData/LoadJSData.php (added)
-
tags/1.11.2/src/Utilities/JSData/PageHeaderData.php (added)
-
tags/1.11.2/src/Utilities/JSData/UsageReportingData.php (added)
-
tags/1.11.2/src/Utilities/SingletonTrait.php (added)
-
tags/1.11.2/src/Utilities/SyncTimer.php (added)
-
tags/1.11.2/src/Utilities/SyncTimerList.php (added)
-
tags/1.11.2/src/Utilities/Upgrade (added)
-
tags/1.11.2/src/Utilities/Upgrade/DatabaseUpgrade.php (added)
-
tags/1.11.2/src/Utilities/UsageReporting.php (added)
-
tags/1.11.2/src/WPSynchroBootstrap.php (added)
-
tags/1.11.2/src/compatibility (added)
-
tags/1.11.2/src/compatibility/class-compatibility.php (added)
-
tags/1.11.2/vendor (added)
-
tags/1.11.2/vendor/autoload.php (added)
-
tags/1.11.2/vendor/composer (added)
-
tags/1.11.2/vendor/composer/ClassLoader.php (added)
-
tags/1.11.2/vendor/composer/InstalledVersions.php (added)
-
tags/1.11.2/vendor/composer/LICENSE (added)
-
tags/1.11.2/vendor/composer/autoload_classmap.php (added)
-
tags/1.11.2/vendor/composer/autoload_namespaces.php (added)
-
tags/1.11.2/vendor/composer/autoload_psr4.php (added)
-
tags/1.11.2/vendor/composer/autoload_real.php (added)
-
tags/1.11.2/vendor/composer/autoload_static.php (added)
-
tags/1.11.2/vendor/composer/installed.json (added)
-
tags/1.11.2/vendor/composer/installed.php (added)
-
tags/1.11.2/vendor/composer/platform_check.php (added)
-
tags/1.11.2/wpsynchro.php (added)
-
trunk/changelog.txt (modified) (1 diff)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/src/Database/SerializedStringHandler.php (modified) (3 diffs)
-
trunk/src/Logger/FileLogger.php (modified) (1 diff)
-
trunk/src/Utilities/Compatibility/wpsynchro-mu-plugin-compat.php (modified) (1 diff)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (3 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (2 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
-
trunk/wpsynchro.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wpsynchro/trunk/changelog.txt
r2989449 r3000905 1 = 1.11.2 = 2 * Bugfix: Fix PHP timeout issue caused by serialized data, kinda like 1.11.1 hotfix, but caused by another data. 3 * Improvement: Added more safety against timeout issues in serialized data, so it wont happen again 4 1 5 = 1.11.1 = 2 6 * Bugfix: Fix PHP timeout issue caused by serialized string search/replace handler, that goes into endless loop for defective serialized strings -
wpsynchro/trunk/readme.txt
r2989449 r3000905 5 5 Requires at least: 5.2 6 6 Tested up to: 6.4 7 Stable tag: 1.11. 17 Stable tag: 1.11.2 8 8 Requires PHP: 7.0 9 9 License: GPLv3 … … 114 114 == Changelog == 115 115 116 = 1.11.2 = 117 * Bugfix: Fix PHP timeout issue caused by serialized data, kinda like 1.11.1 hotfix, but caused by another data. 118 * Improvement: Added more safety against timeout issues in serialized data, so it wont happen again 119 116 120 = 1.11.1 = 117 121 * Bugfix: Fix PHP timeout issue caused by serialized string search/replace handler, that goes into endless loop for defective serialized strings … … 142 146 * Improvement: Optimize the way database migration was done to better handle large datasets in rows 143 147 144 = 1.9.1 =145 * Bump support for WP 6.2146 * Improvement: API now flushes data before returning147 148 = 1.9.0 =149 * Bug: Fix issue where MU plugin did not load properly150 * Improvement: Ensure WP 6.1 and PHP 8.1 compatibility151 * Improvement: Improve the warning message when different versions of WP is used152 * Improvement: Add search/replaces for db for cases where the protocol part of the url is wrong in db153 * Improvement: Add check for MU plugin enabled on the target site, when file migration is done, to ensure performance and result154 * Improvement: Add "resume" button when migrations fail, which can used to attempt resume, in such cases where a simple timeout is the problem155 156 157 148 ** Only showing the last few releases - See rest of changelog in changelog.txt or in menu "Changelog" ** -
wpsynchro/trunk/src/Database/SerializedStringHandler.php
r2989449 r3000905 14 14 const STRING_TOKENIZE_LENGTH = 2; 15 15 const STRING_END_PART = '";'; 16 const MAX_TIME_ALLOWED = 500; // ms 16 17 17 18 /** … … 21 22 public function searchReplaceSerialized(string &$data, array $search_replaces) 22 23 { 24 $start_time = microtime(true); 25 $rounds = 0; 23 26 $offset = 0; 24 27 $last_offset = -1; 25 28 while (($data_pos = strpos($data, self::STRING_START_PART, $offset)) !== false) { 29 $rounds++; 26 30 // Make sure we dont do endless loops, if the serialized content is broken 27 31 if ($offset == $last_offset) { … … 30 34 $last_offset = $offset; 31 35 36 // Every some rounds, we just check that we have not spent more time here than we should. 37 if ($rounds % 10000 == 0) { 38 $current_time = microtime(true); 39 $time_spent_in_ms = ($current_time - $start_time) * 1000; 40 if ($time_spent_in_ms > self::MAX_TIME_ALLOWED) { 41 // Likely that something is broken, so we break 42 throw new SerializedStringException( 43 'Skipping large serialized value that could not be search/replaced within reasonable time. First part of string:', 44 0, 45 substr($data, 0, 200) 46 ); 47 } 48 } 49 32 50 // Get string length 33 51 $length_start_pos = $data_pos + self::STRING_TOKENIZE_LENGTH; 34 52 $length_end_pos = strpos($data, ':', $length_start_pos); 35 53 $length_length = $length_end_pos - $length_start_pos; 54 $expected_string_length = substr($data, $length_start_pos, $length_length); 36 55 37 56 // Get string value 38 57 $string_start_pos = $length_start_pos + $length_length + 2; 39 $string_end_pos = strpos($data, self::STRING_END_PART, $string_start_pos);58 $string_end_pos = $string_start_pos + $expected_string_length; 40 59 $string_length = $string_end_pos - $string_start_pos; 60 61 // Check that string ends there and if not, something is wrong and we abort 62 if (substr($data, $string_end_pos, 2) !== self::STRING_END_PART) { 63 throw new SerializedStringException('Skipping serialized value that is broken, so no search/replaces could be done in this value.', 0, $data); 64 } 65 41 66 $string_value = substr($data, $string_start_pos, $string_length); 42 67 -
wpsynchro/trunk/src/Logger/FileLogger.php
r2989449 r3000905 64 64 // If context, print that on newline 65 65 if (is_array($context) || is_object($context)) { 66 $formatted_msg .= PHP_EOL . print_r($context, true) . PHP_EOL;66 $formatted_msg .= PHP_EOL . esc_html(print_r($context, true)) . PHP_EOL; 67 67 } elseif (is_string($context) && strlen($context) > 0) { 68 $formatted_msg .= $context. PHP_EOL;68 $formatted_msg .= esc_html($context) . PHP_EOL; 69 69 } 70 70 $complete_path = $this->filepath . $this->filename_prefix . $this->filename; -
wpsynchro/trunk/src/Utilities/Compatibility/wpsynchro-mu-plugin-compat.php
r2967397 r3000905 10 10 */ 11 11 12 // phpcs:ignoreFile 12 13 define('WPSYNCHRO_MU_COMPATIBILITY_VERSION', '1.0.5'); 13 14 -
wpsynchro/trunk/vendor/autoload.php
r2989449 r3000905 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit 2ba422472cd5840f904f9f3bdbae873f::getLoader();7 return ComposerAutoloaderInite718c56e304758bfb3fc87c744bcf1dc::getLoader(); -
wpsynchro/trunk/vendor/composer/autoload_real.php
r2989449 r3000905 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 2ba422472cd5840f904f9f3bdbae873f5 class ComposerAutoloaderInite718c56e304758bfb3fc87c744bcf1dc 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 2ba422472cd5840f904f9f3bdbae873f', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInite718c56e304758bfb3fc87c744bcf1dc', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 2ba422472cd5840f904f9f3bdbae873f', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInite718c56e304758bfb3fc87c744bcf1dc', 'loadClassLoader')); 30 30 31 31 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 33 33 require __DIR__ . '/autoload_static.php'; 34 34 35 call_user_func(\Composer\Autoload\ComposerStaticInit 2ba422472cd5840f904f9f3bdbae873f::getInitializer($loader));35 call_user_func(\Composer\Autoload\ComposerStaticInite718c56e304758bfb3fc87c744bcf1dc::getInitializer($loader)); 36 36 } else { 37 37 $map = require __DIR__ . '/autoload_namespaces.php'; -
wpsynchro/trunk/vendor/composer/autoload_static.php
r2989449 r3000905 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 2ba422472cd5840f904f9f3bdbae873f7 class ComposerStaticInite718c56e304758bfb3fc87c744bcf1dc 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 133 133 { 134 134 return \Closure::bind(function () use ($loader) { 135 $loader->prefixLengthsPsr4 = ComposerStaticInit 2ba422472cd5840f904f9f3bdbae873f::$prefixLengthsPsr4;136 $loader->prefixDirsPsr4 = ComposerStaticInit 2ba422472cd5840f904f9f3bdbae873f::$prefixDirsPsr4;137 $loader->classMap = ComposerStaticInit 2ba422472cd5840f904f9f3bdbae873f::$classMap;135 $loader->prefixLengthsPsr4 = ComposerStaticInite718c56e304758bfb3fc87c744bcf1dc::$prefixLengthsPsr4; 136 $loader->prefixDirsPsr4 = ComposerStaticInite718c56e304758bfb3fc87c744bcf1dc::$prefixDirsPsr4; 137 $loader->classMap = ComposerStaticInite718c56e304758bfb3fc87c744bcf1dc::$classMap; 138 138 139 139 }, null, ClassLoader::class); -
wpsynchro/trunk/vendor/composer/installed.php
r2989449 r3000905 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 8bd85e12bebcf2b3a76cb79086d56a033d95eff6',8 'reference' => 'dfb307600c26c043ac336e699b86b75bcee47d7c', 9 9 'name' => 'wpsynchro/wpsynchro', 10 10 'dev' => false, … … 17 17 'install_path' => __DIR__ . '/../../', 18 18 'aliases' => array(), 19 'reference' => ' 8bd85e12bebcf2b3a76cb79086d56a033d95eff6',19 'reference' => 'dfb307600c26c043ac336e699b86b75bcee47d7c', 20 20 'dev_requirement' => false, 21 21 ), -
wpsynchro/trunk/wpsynchro.php
r2989449 r3000905 4 4 Plugin URI: https://wpsynchro.com/home 5 5 Description: Professional migration plugin for WordPress - Migration of database and files made easy 6 Version: 1.11. 16 Version: 1.11.2 7 7 Author: WPSynchro 8 8 Author URI: https://wpsynchro.com … … 34 34 } // Exit if accessed directly 35 35 36 define('WPSYNCHRO_VERSION', '1.11. 1');36 define('WPSYNCHRO_VERSION', '1.11.2'); 37 37 define('WPSYNCHRO_DB_VERSION', '9'); 38 38 define('WPSYNCHRO_NEWEST_MU_COMPATIBILITY_VERSION', '1.0.5');
Note: See TracChangeset
for help on using the changeset viewer.