]> git.mxchange.org Git - mailer.git/commitdiff
Added a check for isExtensionUpdateRunning() in updateExtension() to prevent double...
authorRoland Häder <roland@mxchange.org>
Mon, 4 Jul 2011 02:19:08 +0000 (02:19 +0000)
committerRoland Häder <roland@mxchange.org>
Mon, 4 Jul 2011 02:19:08 +0000 (02:19 +0000)
inc/extensions-functions.php

index 5ed3e89ecf1affbae67e9c159e7398f73e29f5db..fb21ed0c4996bab1c5f167ff63474fb187e4b168 100644 (file)
@@ -651,13 +651,22 @@ function getExtensionVersion ($ext_name, $force = false) {
 // Updates a given extension with current extension version to latest version
 function updateExtension ($ext_name, $ext_ver, $dry_run = false) {
        // Only admins are allowed to update extensions
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run) . ' - ENTERED!');
        if ((!isAdmin()) || (empty($ext_name))) {
-               return false;
+               // Called as non-admin or empty extension
+               debug_report_bug(__FUNCTION__, __LINE__, 'Called as non-admin (isAdmin()=' . intval(isAdmin()) . '), or empty extension name. ext_name=' . $ext_name);
        } // END - if
 
        // Set current SQL name
        setCurrentExtensionName($ext_name);
 
+       // Is this extension update already running?
+       if (isExtensionUpdateRunning($ext_name)) {
+               // This is fine but needs logging ATM
+               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in update phase, all fine.');
+               return true;
+       } // END - if
+
        // Init arrays
        initExtensionSqls();
        initExtensionNotes();
@@ -746,6 +755,8 @@ function updateExtension ($ext_name, $ext_ver, $dry_run = false) {
                        runFilterChain('extension_update', getCurrentExtensionName());
                } // END - if
        } // END - if
+
+       //* DEBUG: */logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run) . ' - EXIT!');
 }
 
 // Output verbose SQL table for extension
@@ -1301,7 +1312,7 @@ function isExtensionUpdateRunning ($ext_name) {
                // Walk through whole array
                foreach ($GLOBALS['ext_running_updates'] as $ext1=>$depends) {
                        // Is it found?
-                       if (($ext1 == $ext_name) || ($isRunning === true)) {
+                       if ($ext1 == $ext_name) {
                                // Found
                                $isRunning = true;
                                logDebugMessage(__FUNCTION__, __LINE__, 'ext1=' . $ext1 . ',ext_name=' . $ext_name . ',isRunning=' . intval($isRunning));