InfiniteWP Client - Version 1.6.4

Version Description

  • May 2nd 2017 =
  • Improvement: JSON communication implementation between Admin Panel and Client plugin has been completed.
  • Improvement: Unwanted files and folders will be automatically excluded from backups.
  • Improvement: Few unwanted folders have been excluded from the list of folders to be backed up.
  • Fix: When cloud upload fails during backup, the copy is retained on the server instead of being deleted.
  • Fix: The backup process would generate the warning "PHP Warning: fclose(): supplied resource is not a valid stream resource in /home/heidihic/public_html/wp-content/plugins/iwp-client/lib/amazon/s3IWPBackup.php on line 310" during multi-call backups.
Download this release

Release Info

Developer infinitewp
Plugin Icon 128x128 InfiniteWP Client
Version 1.6.4
Comparing to
See all releases

Code changes from version 1.6.3.2 to 1.6.4

backup.class.multicall.php CHANGED
@@ -191,7 +191,7 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
191
if(!empty($params))
192
{
193
initialize_manual_debug();
194
-
195
$initialize_result = refresh_iwp_files_db();
196
if(is_array($initialize_result) && isset($initialize_result['error'])){
197
return $initialize_result;
@@ -994,10 +994,28 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
994
995
996
//Always remove backup folders
997
- $remove = array(
998
trim(basename(WP_CONTENT_DIR)) . "/infinitewp/backups",
999
trim(basename(WP_CONTENT_DIR)) . "/" . md5('iwp_mmb-client') . "/iwp_backups",
1000
trim(basename(WP_CONTENT_DIR)) . "/cache",
1001
trim(basename(WP_CONTENT_DIR)) . "/w3tc",
1002
trim(basename(WP_CONTENT_DIR)) . "/logs",
1003
trim(basename(WP_CONTENT_DIR)) . "/widget_cache",
@@ -1006,8 +1024,39 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
1006
trim(basename(WP_CONTENT_DIR)) . "/updraftplus",
1007
trim(basename(WP_CONTENT_DIR)) . "/backups",
1008
trim(basename(WP_CONTENT_DIR)) . "/uploads/wp-clone",
1009
- trim(basename(WP_CONTENT_DIR)) . "/uploads/db-backup",
1010
trim(basename(WP_PLUGIN_DIR)) . "/cache",
1011
);
1012
manual_debug('', 'beforeExclude', 0);
1013
if((!empty($exclude_file_size))||(!empty($exclude_extensions)))
@@ -2308,7 +2357,7 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
2308
return $fieldParams;
2309
}
2310
2311
- function get_all_tasks(){
2312
/*global $wpdb;
2313
2314
$stats = array();
@@ -2331,16 +2380,20 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
2331
$stats = array();
2332
$table_name = $wpdb->base_prefix . "iwp_backup_status";
2333
2334
- $rows = $wpdb->get_results("SELECT ID, taskName, taskResults FROM ".$table_name." ORDER BY ID DESC", ARRAY_A);
2335
$this->cleanup_failed_backups($rows);
2336
$task_res = array();
2337
foreach($rows as $key => $value){
2338
$task_results = unserialize($value['taskResults']);
2339
-
2340
- if(!empty($task_results['task_results']))
2341
- foreach($task_results['task_results'] as $key => $data){
2342
-
2343
- $task_res[$value['taskName']]['task_results'][$key] = $data;
2344
}
2345
}
2346
@@ -2372,6 +2425,13 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
2372
$deleteRes = $wpdb->query($delete_query);
2373
}
2374
2375
function get_this_tasks(){
2376
$this->wpdb_reconnect();
2377
@@ -4341,7 +4401,6 @@ function ftp_backup($historyID,$args = '')
4341
$result_arr['nextFunc'] = 'dropbox_backup';
4342
$result_arr['dropboxArgs'] = $tempArgs;
4343
$result_arr['current_file_num'] = $current_file_num;
4344
-
4345
//updating offset and uploadid values for relooping.
4346
$offset = isset($chunkResult['offset']) ? $chunkResult['offset'] : 0;
4347
$uploadid = isset($chunkResult['upload_id']) ? $chunkResult['upload_id'] : 0;
@@ -4362,6 +4421,7 @@ function ftp_backup($historyID,$args = '')
4362
}
4363
else
4364
{
4365
$reloop = true;
4366
$chunkCount++;
4367
}
@@ -4410,6 +4470,26 @@ function ftp_backup($historyID,$args = '')
4410
4411
}
4412
catch (Exception $e) {
4413
$this->_log($e->getMessage());
4414
return array(
4415
'error' => $e->getMessage(),
@@ -5722,7 +5802,8 @@ function ftp_backup($historyID,$args = '')
5722
function cleanup()
5723
{
5724
$tasks = $this->get_all_tasks(); //all backups task results array.
5725
-
5726
$backup_folder = WP_CONTENT_DIR . '/' . md5('iwp_mmb-client') . '/iwp_backups/';
5727
$backup_folder_new = IWP_BACKUP_DIR . '/';
5728
$backup_temp_folder = IWP_PCLZIP_TEMPORARY_DIR;
@@ -5765,23 +5846,32 @@ function ftp_backup($historyID,$args = '')
5765
5766
if (is_array($files) && count($files)) {
5767
$results = array();
5768
if (!empty($tasks)) {
5769
- foreach ((array) $tasks as $task) {
5770
//if (isset($task) && count($task)) {
5771
// foreach ($task as $backup) {
5772
if (isset($task['task_results']) && count($task['task_results'])) {
5773
- foreach ($task['task_results'] as $backup) {
5774
if (isset($backup['server'])) {
5775
$this_backup_file = $backup['server']['file_path'];
5776
if(is_array($this_backup_file))
5777
{
5778
foreach($this_backup_file as $single_backup_file)
5779
- {
5780
$results[] = $single_backup_file;
5781
}
5782
}
5783
else
5784
{
5785
$results[] = $this_backup_file;
5786
}
5787
}
@@ -5790,15 +5880,18 @@ function ftp_backup($historyID,$args = '')
5790
}
5791
}
5792
$num_deleted = 0;
5793
-
5794
foreach ($files as $file) {
5795
- if (!in_array($file, $results) && basename($file) != 'index.php') {
5796
@unlink($file);
5797
//$deleted[] = basename($file);
5798
$deleted[] = $file;
5799
$num_deleted++;
5800
}
5801
}
5802
}
5803
return $deleted;
5804
}
191
if(!empty($params))
192
{
193
initialize_manual_debug();
194
+ $this->cleanup();
195
$initialize_result = refresh_iwp_files_db();
196
if(is_array($initialize_result) && isset($initialize_result['error'])){
197
return $initialize_result;
994
995
996
//Always remove backup folders
997
+ $remove = array(
998
trim(basename(WP_CONTENT_DIR)) . "/infinitewp/backups",
999
trim(basename(WP_CONTENT_DIR)) . "/" . md5('iwp_mmb-client') . "/iwp_backups",
1000
trim(basename(WP_CONTENT_DIR)) . "/cache",
1001
+ trim(basename(WP_CONTENT_DIR)) . "/managewp/backups",
1002
+ trim(basename(WP_CONTENT_DIR)) . "/backupwordpress",
1003
+ trim(basename(WP_CONTENT_DIR)) . "/contents/cache",
1004
+ trim(basename(WP_CONTENT_DIR)) . "/content/cache",
1005
+ trim(basename(WP_CONTENT_DIR)) . "/old-cache",
1006
+ trim(basename(WP_CONTENT_DIR)) . "/cmscommander/backups",
1007
+ trim(basename(WP_CONTENT_DIR)) . "/gt-cache",
1008
+ trim(basename(WP_CONTENT_DIR)) . "/wfcache",
1009
+ trim(basename(WP_CONTENT_DIR)) . "/bps-backup",
1010
+ trim(basename(WP_CONTENT_DIR)) . "/old-cache",
1011
+ trim(basename(WP_CONTENT_DIR)) . "/nfwlog",
1012
+ trim(basename(WP_CONTENT_DIR)) . "/upgrade",
1013
+ trim(basename(WP_CONTENT_DIR)) . "/nfwlog",
1014
+ trim(basename(WP_CONTENT_DIR)) . "/wflogs",
1015
+ trim(basename(WP_CONTENT_DIR)) . "/debug.log",
1016
+ trim(basename(WP_CONTENT_DIR)) . "/wptouch-data/infinity-cache/",
1017
+ trim(basename(WP_CONTENT_DIR)) . "/mysql.sql",
1018
+ trim(basename(WP_CONTENT_DIR)) . "/wishlist-backup",
1019
trim(basename(WP_CONTENT_DIR)) . "/w3tc",
1020
trim(basename(WP_CONTENT_DIR)) . "/logs",
1021
trim(basename(WP_CONTENT_DIR)) . "/widget_cache",
1024
trim(basename(WP_CONTENT_DIR)) . "/updraftplus",
1025
trim(basename(WP_CONTENT_DIR)) . "/backups",
1026
trim(basename(WP_CONTENT_DIR)) . "/uploads/wp-clone",
1027
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/uploads/db-backup",
1028
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/ithemes-security/backups",
1029
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/mainwp/backup",
1030
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/backupbuddy_backups",
1031
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/vcf",
1032
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/pb_backupbuddy",
1033
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/sucuri",
1034
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/aiowps_backups",
1035
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/mainwp",
1036
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/snapshots",
1037
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/wp_system",
1038
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/wpcf7_captcha",
1039
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/wc-logs",
1040
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/siteorigin-widgets",
1041
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/wp-hummingbird-cache",
1042
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/wp-security-audit-log",
1043
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/backwpup-12b462-backups",
1044
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/backwpup-12b462-logs",
1045
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/backwpup-12b462-temp",
1046
+ trim(basename(WP_CONTENT_DIR)) . "/Dropbox_Backup",
1047
trim(basename(WP_PLUGIN_DIR)) . "/cache",
1048
+ "wp-admin/error_log",
1049
+ "wp-admin/php_errorlog",
1050
+ "error_log",
1051
+ "error.log",
1052
+ "debug.log",
1053
+ "WS_FTP.LOG",
1054
+ "security.log",
1055
+ "wp-tcapsule-bridge.zip",
1056
+ "dbcache",
1057
+ "pgcache",
1058
+ "objectcache",
1059
+ "wp-snapshots",
1060
);
1061
manual_debug('', 'beforeExclude', 0);
1062
if((!empty($exclude_file_size))||(!empty($exclude_extensions)))
2357
return $fieldParams;
2358
}
2359
2360
+ function get_all_tasks($isNeedRequestParams =false){
2361
/*global $wpdb;
2362
2363
$stats = array();
2380
$stats = array();
2381
$table_name = $wpdb->base_prefix . "iwp_backup_status";
2382
2383
+ $rows = $wpdb->get_results("SELECT ID, taskName, taskResults, requestParams FROM ".$table_name." ORDER BY ID DESC", ARRAY_A);
2384
$this->cleanup_failed_backups($rows);
2385
$task_res = array();
2386
foreach($rows as $key => $value){
2387
$task_results = unserialize($value['taskResults']);
2388
+ $requestParams = unserialize($value['requestParams']);
2389
+ if(!empty($task_results['task_results'])){
2390
+ foreach($task_results['task_results'] as $key => $data){
2391
+ if ($isNeedRequestParams===true && !empty($requestParams)) {
2392
+ $task_res[$value['taskName']]['requestParams'][$key] = $requestParams;
2393
+ }else{
2394
+ $task_res[$value['taskName']]['task_results'][$key] = $data;
2395
+ }
2396
+ }
2397
}
2398
}
2399
2425
$deleteRes = $wpdb->query($delete_query);
2426
}
2427
2428
+ function remove_failed_backups_by_hisID($ID){
2429
+ global $wpdb;
2430
+ $table_name = $wpdb->base_prefix . "iwp_backup_status";
2431
+ $delete_query = "DELETE FROM ".$table_name." WHERE historyID IN (".implode(', ', $ID).") ";
2432
+ $deleteRes = $wpdb->query($delete_query);
2433
+ }
2434
+
2435
function get_this_tasks(){
2436
$this->wpdb_reconnect();
2437
4401
$result_arr['nextFunc'] = 'dropbox_backup';
4402
$result_arr['dropboxArgs'] = $tempArgs;
4403
$result_arr['current_file_num'] = $current_file_num;
4404
//updating offset and uploadid values for relooping.
4405
$offset = isset($chunkResult['offset']) ? $chunkResult['offset'] : 0;
4406
$uploadid = isset($chunkResult['upload_id']) ? $chunkResult['upload_id'] : 0;
4421
}
4422
else
4423
{
4424
+
4425
$reloop = true;
4426
$chunkCount++;
4427
}
4470
4471
}
4472
catch (Exception $e) {
4473
+ if (preg_match("/Submitted input out of alignment: got \[(\d+)\] expected \[(\d+)\]/i", $e->getMessage(), $matches)) {
4474
+ // Try the indicated offset
4475
+ $we_tried = $matches[1];
4476
+ $offset = $matches[2];
4477
+ $chunkResult = $dropbox->chunked_upload($backup_file, $dropbox_destination, true, $uploadid, $offset, $readsize, $isCommit);
4478
+ $result_arr = array();
4479
+ $result_arr['response_data'] = $chunkResult;
4480
+ $result_arr['nextFunc'] = 'dropbox_backup';
4481
+ $result_arr['dropboxArgs'] = $tempArgs;
4482
+ $offset = isset($chunkResult['offset']) ? $chunkResult['offset'] : 0;
4483
+ $uploadid = isset($chunkResult['upload_id']) ? $chunkResult['upload_id'] : 0;
4484
+ $resArray = array (
4485
+ 'backupParentHID' => $historyID,
4486
+ );
4487
+ $result_arr['nextFunc'] = 'dropbox_backup';
4488
+ $result_arr['current_file_num'] = $current_file_num;
4489
+ $result_arr['status'] = 'partiallyCompleted';
4490
+ $this->statusLog($historyID, array('stage' => 'dropboxMultiCall', 'status' => 'completed', 'statusMsg' => 'nextCall','nextFunc' => 'dropbox_backup', 'task_result' => $task_result, 'responseParams' => $result_arr));
4491
+ return $resArray;
4492
+ }
4493
$this->_log($e->getMessage());
4494
return array(
4495
'error' => $e->getMessage(),
5802
function cleanup()
5803
{
5804
$tasks = $this->get_all_tasks(); //all backups task results array.
5805
+ $requestParams = $this->get_all_tasks(true);
5806
+ $thisTask = $this->get_this_tasks();
5807
$backup_folder = WP_CONTENT_DIR . '/' . md5('iwp_mmb-client') . '/iwp_backups/';
5808
$backup_folder_new = IWP_BACKUP_DIR . '/';
5809
$backup_temp_folder = IWP_PCLZIP_TEMPORARY_DIR;
5846
5847
if (is_array($files) && count($files)) {
5848
$results = array();
5849
+ $cloudFailedBackup = array();
5850
+ $failedBackupHisID = array();
5851
if (!empty($tasks)) {
5852
+ foreach ((array) $tasks as $taskName => $task) {
5853
//if (isset($task) && count($task)) {
5854
// foreach ($task as $backup) {
5855
if (isset($task['task_results']) && count($task['task_results'])) {
5856
+ foreach ($task['task_results'] as $historyID => $backup) {
5857
if (isset($backup['server'])) {
5858
$this_backup_file = $backup['server']['file_path'];
5859
if(is_array($this_backup_file))
5860
{
5861
foreach($this_backup_file as $single_backup_file)
5862
+ { if (!empty($requestParams[$taskName]['requestParams'][$historyID]['account_info']) && $thisTask['historyID'] != $historyID) {
5863
+ $cloudFailedBackup[]= $single_backup_file;
5864
+ $failedBackupHisID[$historyID]=$historyID;
5865
+ }
5866
$results[] = $single_backup_file;
5867
}
5868
}
5869
else
5870
{
5871
+ if (!empty($requestParams[$taskName]['requestParams'][$historyID]['account_info']) && $thisTask['historyID'] != $historyID) {
5872
+ $cloudFailedBackup[]= $this_backup_file;
5873
+ $failedBackupHisID[$historyID]=$historyID;
5874
+ }
5875
$results[] = $this_backup_file;
5876
}
5877
}
5880
}
5881
}
5882
$num_deleted = 0;
5883
foreach ($files as $file) {
5884
+ if ((!in_array($file, $results) || in_array($file, $failedBackupHisID)) && basename($file) != 'index.php') {
5885
@unlink($file);
5886
//$deleted[] = basename($file);
5887
$deleted[] = $file;
5888
$num_deleted++;
5889
}
5890
}
5891
+
5892
+ if (!empty($failedBackupHisID)) {
5893
+ $this->remove_failed_backups_by_hisID($failedBackupHisID);
5894
+ }
5895
}
5896
return $deleted;
5897
}
backup.class.singlecall.php CHANGED
@@ -544,17 +544,66 @@ function delete_task_now($task_name){
544
$remove = array(
545
trim(basename(WP_CONTENT_DIR)) . "/infinitewp/backups",
546
trim(basename(WP_CONTENT_DIR)) . "/" . md5('iwp_mmb-client') . "/iwp_backups",
547
- trim(basename(WP_CONTENT_DIR)) . "/cache",
548
- trim(basename(WP_CONTENT_DIR)) . "/w3tc",
549
- trim(basename(WP_CONTENT_DIR)) . "/logs",
550
- trim(basename(WP_CONTENT_DIR)) . "/widget_cache",
551
- trim(basename(WP_CONTENT_DIR)) . "/tmp",
552
- trim(basename(WP_CONTENT_DIR)) . "/updraft",
553
- trim(basename(WP_CONTENT_DIR)) . "/updraftplus",
554
- trim(basename(WP_CONTENT_DIR)) . "/backups",
555
- trim(basename(WP_CONTENT_DIR)) . "/uploads/wp-clone",
556
- trim(basename(WP_CONTENT_DIR)) . "/uploads/db-backup",
557
- trim(basename(WP_PLUGIN_DIR)) . "/cache",
558
);
559
560
//removing files which are larger than the specified size
544
$remove = array(
545
trim(basename(WP_CONTENT_DIR)) . "/infinitewp/backups",
546
trim(basename(WP_CONTENT_DIR)) . "/" . md5('iwp_mmb-client') . "/iwp_backups",
547
+ trim(basename(WP_CONTENT_DIR)) . "/cache",
548
+ trim(basename(WP_CONTENT_DIR)) . "/managewp/backups",
549
+ trim(basename(WP_CONTENT_DIR)) . "/backupwordpress",
550
+ trim(basename(WP_CONTENT_DIR)) . "/contents/cache",
551
+ trim(basename(WP_CONTENT_DIR)) . "/content/cache",
552
+ trim(basename(WP_CONTENT_DIR)) . "/old-cache",
553
+ trim(basename(WP_CONTENT_DIR)) . "/cmscommander/backups",
554
+ trim(basename(WP_CONTENT_DIR)) . "/gt-cache",
555
+ trim(basename(WP_CONTENT_DIR)) . "/wfcache",
556
+ trim(basename(WP_CONTENT_DIR)) . "/bps-backup",
557
+ trim(basename(WP_CONTENT_DIR)) . "/old-cache",
558
+ trim(basename(WP_CONTENT_DIR)) . "/nfwlog",
559
+ trim(basename(WP_CONTENT_DIR)) . "/upgrade",
560
+ trim(basename(WP_CONTENT_DIR)) . "/nfwlog",
561
+ trim(basename(WP_CONTENT_DIR)) . "/wflogs",
562
+ trim(basename(WP_CONTENT_DIR)) . "/debug.log",
563
+ trim(basename(WP_CONTENT_DIR)) . "/wptouch-data/infinity-cache/",
564
+ trim(basename(WP_CONTENT_DIR)) . "/mysql.sql",
565
+ trim(basename(WP_CONTENT_DIR)) . "/wishlist-backup",
566
+ trim(basename(WP_CONTENT_DIR)) . "/w3tc",
567
+ trim(basename(WP_CONTENT_DIR)) . "/logs",
568
+ trim(basename(WP_CONTENT_DIR)) . "/widget_cache",
569
+ trim(basename(WP_CONTENT_DIR)) . "/tmp",
570
+ trim(basename(WP_CONTENT_DIR)) . "/updraft",
571
+ trim(basename(WP_CONTENT_DIR)) . "/updraftplus",
572
+ trim(basename(WP_CONTENT_DIR)) . "/backups",
573
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/wp-clone",
574
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/uploads/db-backup",
575
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/ithemes-security/backups",
576
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/mainwp/backup",
577
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/backupbuddy_backups",
578
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/vcf",
579
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/pb_backupbuddy",
580
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/sucuri",
581
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/aiowps_backups",
582
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/mainwp",
583
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/snapshots",
584
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/wp_system",
585
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/wpcf7_captcha",
586
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/wc-logs",
587
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/siteorigin-widgets",
588
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/wp-hummingbird-cache",
589
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/wp-security-audit-log",
590
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/backwpup-12b462-backups",
591
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/backwpup-12b462-logs",
592
+ trim(basename(WP_CONTENT_DIR)) . "/uploads/backwpup-12b462-temp",
593
+ trim(basename(WP_CONTENT_DIR)) . "/Dropbox_Backup",
594
+ trim(basename(WP_PLUGIN_DIR)) . "/cache",
595
+ "wp-admin/error_log",
596
+ "wp-admin/php_errorlog",
597
+ "error_log",
598
+ "error.log",
599
+ "debug.log",
600
+ "WS_FTP.LOG",
601
+ "security.log",
602
+ "wp-tcapsule-bridge.zip",
603
+ "dbcache",
604
+ "pgcache",
605
+ "objectcache",
606
+ "wp-snapshots",
607
);
608
609
//removing files which are larger than the specified size
init.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: InfiniteWP - Client
4
Plugin URI: http://infinitewp.com/
5
Description: This is the client plugin of InfiniteWP that communicates with the InfiniteWP Admin panel.
6
Author: Revmakx
7
- Version: 1.6.3.2
8
Author URI: http://www.revmakx.com
9
*/
10
/************************************************************
@@ -28,7 +28,7 @@ if(basename($_SERVER['SCRIPT_FILENAME']) == "init.php"):
28
exit;
29
endif;
30
if(!defined('IWP_MMB_CLIENT_VERSION'))
31
- define('IWP_MMB_CLIENT_VERSION', '1.6.3.2');
32
33
34
@@ -108,28 +108,22 @@ if( !function_exists ('iwp_mmb_parse_request')) {
108
$request_data_array = explode('_IWP_JSON_PREFIX_', $HTTP_RAW_POST_DATA_LOCAL);
109
$request_raw_data = $request_data_array[1];
110
$data = trim(base64_decode($request_raw_data));
111
- $request_data = NULL;
112
$GLOBALS['IWP_JSON_COMMUNICATION'] = 1;
113
- } else{
114
$request_raw_data = $HTTP_RAW_POST_DATA_LOCAL;
115
$data = trim(base64_decode($request_raw_data));
116
if (is_serialized($data)) {
117
- if ((strpos($data, 'get_stats') || strpos($data, 'add_site') || strpos($data, 'remove_site')) && (strpos($data,'2.10.1') || strpos($data,'2.10.0') || strpos($data,'2.10.0.1'))) {
118
- $request_data = iwp_mmb_safe_unserialize($data);
119
- }else{
120
- iwp_mmb_response(array('error' => 'Please update your IWP Admin Panel to version 2.10.1', 'error_code' => 'update_panel'), false, true);
121
- }
122
}else{
123
return false;
124
}
125
}
126
if ($data){
127
128
//$num = @extract(unserialize($data));
129
- if (!isset($request_data) && $request_data['iwp_action'] != 'add_site' && $request_data['iwp_action'] != 'get_stats' && $request_data['iwp_action'] != 'remove_site') {
130
- $request_data = json_decode($data, true);
131
- }
132
-
133
if(isset($request_data['params'])){
134
$request_data['params'] = iwp_mmb_filter_params($request_data['params']);
135
}
4
Plugin URI: http://infinitewp.com/
5
Description: This is the client plugin of InfiniteWP that communicates with the InfiniteWP Admin panel.
6
Author: Revmakx
7
+ Version: 1.6.4
8
Author URI: http://www.revmakx.com
9
*/
10
/************************************************************
28
exit;
29
endif;
30
if(!defined('IWP_MMB_CLIENT_VERSION'))
31
+ define('IWP_MMB_CLIENT_VERSION', '1.6.4');
32
33
34
108
$request_data_array = explode('_IWP_JSON_PREFIX_', $HTTP_RAW_POST_DATA_LOCAL);
109
$request_raw_data = $request_data_array[1];
110
$data = trim(base64_decode($request_raw_data));
111
$GLOBALS['IWP_JSON_COMMUNICATION'] = 1;
112
+ }else{
113
$request_raw_data = $HTTP_RAW_POST_DATA_LOCAL;
114
$data = trim(base64_decode($request_raw_data));
115
if (is_serialized($data)) {
116
+ iwp_mmb_response(array('error' => 'Please update your IWP Admin Panel to latest version', 'error_code' => 'update_panel'), false, true);
117
}else{
118
return false;
119
}
120
}
121
+
122
if ($data){
123
124
//$num = @extract(unserialize($data));
125
+ $request_data = json_decode($data, true);
126
+
127
if(isset($request_data['params'])){
128
$request_data['params'] = iwp_mmb_filter_params($request_data['params']);
129
}
lib/amazon/s3IWPBackup.php CHANGED
@@ -307,7 +307,7 @@ class IWP_MMB_S3_MULTICALL extends IWP_MMB_Backup_Multicall
307
$partNumber++;
308
}
309
}
310
- fclose($file);
311
}
312
catch (S3Exception $e) {
313
$this->statusLog($this -> hisID, array('stage' => 's3MultiCall', 'status' => 'partiallyCompleted', 'statusMsg' => 'retracingValues','nextFunc' => 'amazons3_backup', 'task_result' => $task_result, 'responseParams' => $result_arr));
307
$partNumber++;
308
}
309
}
310
+ @fclose($file);
311
}
312
catch (S3Exception $e) {
313
$this->statusLog($this -> hisID, array('stage' => 's3MultiCall', 'status' => 'partiallyCompleted', 'statusMsg' => 'retracingValues','nextFunc' => 'amazons3_backup', 'task_result' => $task_result, 'responseParams' => $result_arr));
readme.txt CHANGED
@@ -2,7 +2,7 @@
2
Contributors: infinitewp
3
Tags: admin, administration, amazon, api, authentication, automatic, dashboard, dropbox, events, integration, manage, multisite, multiple, notification, performance, s3, security, seo, stats, tracking, infinitewp, updates, backup, restore, iwp, infinite
4
Requires at least: 3.1
5
- Tested up to: 4.7
6
Stable tag: trunk
7
8
Install this plugin on unlimited sites and manage them all from a central dashboard.
@@ -47,6 +47,13 @@ Credits: [Vladimir Prelovac](http://prelovac.com/vladimir) for his worker plugin
47
5. One-click updates
48
49
== Changelog ==
50
= 1.6.3.2 - Jan 4th 2017 =
51
* Improvement: JSON communication between Admin Panel and Client plugin has been implemented.
52
* Improvement: If the PHP version of WordPress site is less than 5.4.0 then the single call backups will fail with "Fatal error: Cannot use string offset as an array in /home/asogerb6/public_html/wp-content/plugins/iwp-client/backup.class.singlecall.php on line 340".
2
Contributors: infinitewp
3
Tags: admin, administration, amazon, api, authentication, automatic, dashboard, dropbox, events, integration, manage, multisite, multiple, notification, performance, s3, security, seo, stats, tracking, infinitewp, updates, backup, restore, iwp, infinite
4
Requires at least: 3.1
5
+ Tested up to: 4.7.4
6
Stable tag: trunk
7
8
Install this plugin on unlimited sites and manage them all from a central dashboard.
47
5. One-click updates
48
49
== Changelog ==
50
+ = 1.6.4 - May 2nd 2017 =
51
+ * Improvement: JSON communication implementation between Admin Panel and Client plugin has been completed.
52
+ * Improvement: Unwanted files and folders will be automatically excluded from backups.
53
+ * Improvement: Few unwanted folders have been excluded from the list of folders to be backed up.
54
+ * Fix: When cloud upload fails during backup, the copy is retained on the server instead of being deleted.
55
+ * Fix: The backup process would generate the warning "PHP Warning: fclose(): supplied resource is not a valid stream resource in /home/heidihic/public_html/wp-content/plugins/iwp-client/lib/amazon/s3IWPBackup.php on line 310" during multi-call backups.
56
+
57
= 1.6.3.2 - Jan 4th 2017 =
58
* Improvement: JSON communication between Admin Panel and Client plugin has been implemented.
59
* Improvement: If the PHP version of WordPress site is less than 5.4.0 then the single call backups will fail with "Fatal error: Cannot use string offset as an array in /home/asogerb6/public_html/wp-content/plugins/iwp-client/backup.class.singlecall.php on line 340".