Priority File Manager
📁 public_html
Base Directory:
/home/ecedu/public_html
/home/ecedu/public_html/wp-content/plugins
/home/ecedu/public_html/wp-content
/home/ecedu
/var/www
/var/www/cgi-bin
/var/www/html
public_html
/
wp-content
/
plugins
/
updraftplus
/
includes
/home/ecedu/public_html/wp-content/plugins/updraftplus/includes
Name
Type
Size
Actions
📁
..
Folder
-
Delete
Rename
📁
Dropbox2
Folder
-
Delete
Rename
📁
Google
Folder
-
Delete
Rename
📄
S3.php
File
78483
Delete
Rename
Edit
Download
📄
S3compat.php
File
31581
Delete
Rename
Edit
Download
📁
blockui
Folder
-
Delete
Rename
📄
cacert.pem
File
221470
Delete
Rename
Edit
Download
📁
checkout-embed
Folder
-
Delete
Rename
📄
class-backup-history.php
File
40508
Delete
Rename
Edit
Download
📄
class-commands.php
File
49966
Delete
Rename
Edit
Download
📄
class-database-utility.php
File
37569
Delete
Rename
Edit
Download
📄
class-filesystem-functions.php
File
41611
Delete
Rename
Edit
Download
📄
class-http-error-descriptions.php
File
11669
Delete
Rename
Edit
Download
📄
class-job-scheduler.php
File
10552
Delete
Rename
Edit
Download
📄
class-manipulation-functions.php
File
17139
Delete
Rename
Edit
Download
📄
class-partialfileservlet.php
File
7558
Delete
Rename
Edit
Download
📄
class-remote-send.php
File
32760
Delete
Rename
Edit
Download
📄
class-search-replace.php
File
20570
Delete
Rename
Edit
Download
📄
class-semaphore.php
File
6757
Delete
Rename
Edit
Download
📄
class-storage-methods-interface.php
File
18664
Delete
Rename
Edit
Download
📄
class-updraft-dashboard-news.php
File
8242
Delete
Rename
Edit
Download
📄
class-updraft-semaphore.php
File
7693
Delete
Rename
Edit
Download
📄
class-updraftcentral-updraftplus-commands.php
File
1857
Delete
Rename
Edit
Download
📄
class-updraftplus-encryption.php
File
14031
Delete
Rename
Edit
Download
📄
class-wpadmin-commands.php
File
39447
Delete
Rename
Edit
Download
📄
class-zip.php
File
18336
Delete
Rename
Edit
Download
📁
cloudfiles
Folder
-
Delete
Rename
📄
ftp.class.php
File
6769
Delete
Rename
Edit
Download
📄
get-cpanel-quota-usage.pl
File
408
Delete
Rename
Edit
Download
📄
google-extensions.php
File
9497
Delete
Rename
Edit
Download
📁
handlebars
Folder
-
Delete
Rename
📁
images
Folder
-
Delete
Rename
📄
jquery-ui.custom-v1.11.4-1-25-7.min.css
File
38751
Delete
Rename
Edit
Download
📄
jquery-ui.custom-v1.11.4-1-25-7.min.css.map
File
58374
Delete
Rename
Edit
Download
📄
jquery-ui.custom-v1.11.4.css
File
43193
Delete
Rename
Edit
Download
📄
jquery-ui.custom-v1.12.1-1-25-7.min.css
File
40497
Delete
Rename
Edit
Download
📄
jquery-ui.custom-v1.12.1-1-25-7.min.css.map
File
60839
Delete
Rename
Edit
Download
📄
jquery-ui.custom-v1.12.1.css
File
45090
Delete
Rename
Edit
Download
📁
jquery-ui.dialog.extended
Folder
-
Delete
Rename
📁
jquery.serializeJSON
Folder
-
Delete
Rename
📁
jstree
Folder
-
Delete
Rename
📁
labelauty
Folder
-
Delete
Rename
📄
migrator-lite.php
File
53735
Delete
Rename
Edit
Download
📁
pcloud
Folder
-
Delete
Rename
📁
select2
Folder
-
Delete
Rename
📁
tether
Folder
-
Delete
Rename
📁
tether-shepherd
Folder
-
Delete
Rename
📄
updraft-admin-common-1-25-7.min.js
File
158895
Delete
Rename
Edit
Download
📄
updraft-admin-common.js
File
263234
Delete
Rename
Edit
Download
📄
updraft-restorer-skin-compatibility.php
File
452
Delete
Rename
Edit
Download
📄
updraft-restorer-skin.php
File
1723
Delete
Rename
Edit
Download
📄
updraftcentral.php
File
3464
Delete
Rename
Edit
Download
📁
updraftclone
Folder
-
Delete
Rename
📄
updraftplus-clone.php
File
7237
Delete
Rename
Edit
Download
📄
updraftplus-login.php
File
4368
Delete
Rename
Edit
Download
📄
updraftplus-notices.php
File
18842
Delete
Rename
Edit
Download
📄
updraftplus-tour.php
File
13521
Delete
Rename
Edit
Download
📄
updraftvault.php
File
2040
Delete
Rename
Edit
Download
Upload
Create Folder
📝 Editing:
class-semaphore.php
Size: 6,757 bytes
Lines: 235
Type: .php
💾 Save
Cancel
✕
<?php /** * Semaphore Lock Management * Adapted from WP Social under the GPL - thanks to Alex King (https://github.com/crowdfavorite/wp-social) */ class UpdraftPlus_Semaphore { /** * Initializes the semaphore object. * * @static * @return UpdraftPlus_Semaphore */ public static function factory() { return new self; } /** * Lock Broke * * @var boolean */ protected $lock_broke = false; public $lock_name = 'lock'; /** * Attempts to start the lock. If the rename works, the lock is started. * * @return bool */ public function lock() { global $wpdb, $updraftplus; // Attempt to set the lock $affected = $wpdb->query(" UPDATE $wpdb->options SET option_name = 'updraftplus_locked_".$this->lock_name."' WHERE option_name = 'updraftplus_unlocked_".$this->lock_name."' "); if ('0' == $affected && !$this->stuck_check()) { $updraftplus->log('Semaphore lock ('.$this->lock_name.', '.$wpdb->options.') failed (line '.__LINE__.')'); return false; } // Check to see if all processes are complete $affected = $wpdb->query(" UPDATE $wpdb->options SET option_value = CAST(option_value AS UNSIGNED) + 1 WHERE option_name = 'updraftplus_semaphore_".$this->lock_name."' AND option_value = '0' "); if ('1' != $affected) { if (!$this->stuck_check()) { $updraftplus->log('Semaphore lock ('.$this->lock_name.', '.$wpdb->options.') failed (line '.__LINE__.')'); return false; } // Reset the semaphore to 1 $wpdb->query(" UPDATE $wpdb->options SET option_value = '1' WHERE option_name = 'updraftplus_semaphore_".$this->lock_name."' "); $updraftplus->log('Semaphore ('.$this->lock_name.', '.$wpdb->options.') reset to 1'); } // Set the lock time $wpdb->query($wpdb->prepare(" UPDATE $wpdb->options SET option_value = %s WHERE option_name = 'updraftplus_last_lock_time_".$this->lock_name."' ", current_time('mysql', 1))); $updraftplus->log('Set semaphore last lock ('.$this->lock_name.') time to '.current_time('mysql', 1)); $updraftplus->log('Semaphore lock ('.$this->lock_name.') complete'); return true; } public static function ensure_semaphore_exists($semaphore) { // Make sure the options for semaphores exist global $wpdb, $updraftplus; $results = $wpdb->get_results(" SELECT option_id FROM $wpdb->options WHERE option_name IN ('updraftplus_locked_$semaphore', 'updraftplus_unlocked_$semaphore', 'updraftplus_last_lock_time_$semaphore', 'updraftplus_semaphore_$semaphore') "); if (!is_array($results) || count($results) < 3) { if (is_array($results) && count($results) > 0) { $updraftplus->log("Semaphore ($semaphore, ".$wpdb->options.") in an impossible/broken state - fixing (".count($results).")"); } else { $updraftplus->log("Semaphore ($semaphore, ".$wpdb->options.") being initialised"); } $wpdb->query(" DELETE FROM $wpdb->options WHERE option_name IN ('updraftplus_locked_$semaphore', 'updraftplus_unlocked_$semaphore', 'updraftplus_last_lock_time_$semaphore', 'updraftplus_semaphore_$semaphore') "); $wpdb->query($wpdb->prepare(" INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES ('updraftplus_unlocked_$semaphore', '1', 'no'), ('updraftplus_last_lock_time_$semaphore', '%s', 'no'), ('updraftplus_semaphore_$semaphore', '0', 'no') ", current_time('mysql', 1))); } } /** * Increment the semaphore. * * @param array $filters * @return Updraft_Semaphore */ public function increment(array $filters = array()) { global $wpdb, $updraftplus; if (count($filters)) { // Loop through all of the filters and increment the semaphore foreach ($filters as $priority) { for ($i = 0, $j = count($priority); $i < $j; ++$i) { $this->increment(); } } } else { $wpdb->query(" UPDATE $wpdb->options SET option_value = CAST(option_value AS UNSIGNED) + 1 WHERE option_name = 'updraftplus_semaphore_".$this->lock_name."' "); $updraftplus->log('Incremented the semaphore ('.$this->lock_name.') by 1'); } return $this; } /** * Decrements the semaphore. * * @return void */ public function decrement() { global $wpdb, $updraftplus; $wpdb->query(" UPDATE $wpdb->options SET option_value = CAST(option_value AS UNSIGNED) - 1 WHERE option_name = 'updraftplus_semaphore_".$this->lock_name."' AND CAST(option_value AS UNSIGNED) > 0 "); $updraftplus->log('Decremented the semaphore ('.$this->lock_name.') by 1'); } /** * Unlocks the process. * * @return bool */ public function unlock() { global $wpdb, $updraftplus; // Decrement for the master process. $this->decrement(); $result = $wpdb->query(" UPDATE $wpdb->options SET option_name = 'updraftplus_unlocked_".$this->lock_name."' WHERE option_name = 'updraftplus_locked_".$this->lock_name."' "); if ('1' == $result) { $updraftplus->log('Semaphore ('.$this->lock_name.') unlocked'); return true; } $updraftplus->log('Semaphore ('.$this->lock_name.', '.$wpdb->options.') still locked ('.$result.')'); return false; } /** * Attempts to jiggle the stuck lock loose. * * @return bool */ private function stuck_check() { global $wpdb, $updraftplus; // Check to see if we already broke the lock. if ($this->lock_broke) { return true; } $current_time = current_time('mysql', 1); $three_minutes_before = gmdate('Y-m-d H:i:s', time()-(defined('UPDRAFTPLUS_SEMAPHORE_LOCK_WAIT') ? UPDRAFTPLUS_SEMAPHORE_LOCK_WAIT : 180)); $affected = $wpdb->query($wpdb->prepare(" UPDATE $wpdb->options SET option_value = %s WHERE option_name = 'updraftplus_last_lock_time_".$this->lock_name."' AND option_value <= %s ", $current_time, $three_minutes_before)); if ('1' == $affected) { $updraftplus->log('Semaphore ('.$this->lock_name.', '.$wpdb->options.') was stuck, set lock time to '.$current_time); $this->lock_broke = true; return true; } // Check if lock is greater that 24 hours $last_lock_time = strtotime(UpdraftPlus_Options::get_updraft_option('updraftplus_last_lock_time_'.$this->lock_name, $current_time)); $next_day = strtotime($current_time.' +1 day'); if ($last_lock_time > $next_day) { $this->lock_broke = true; return true; } return false; } /** * Remove a given lock from the options table in the database * * @return Boolean True if the lock has successfully been removed, false otherwise */ public function delete_lock() { global $wpdb; return (bool) $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->options} WHERE option_name = %s", $this->lock_name)); } } // End UpdraftPlus_Semaphore
✅ File saved successfully!