Version Description
- Feb 11th 2019 =
- Fix: Duo security plugin on WordPress site breaks the IWP client plugin connection while performing open admin action.
- Fix: Backup is retried when it failed with error "Failed to connect to content.dropboxapi.com port 443: Connection timed out. and Could not resolve host: api.dropboxapi.com.".
- Fix: Plugin updates count showing in plugin menu on WP admin page while hide plugin updates setting is enabled on InfiniteWP admin panel via Client Plugin Branding.
- Fix: Phoenix backup SFTP or FTP not using the custom port.
- Fix: FTP SSL not working on Phoenix backup.
- Fix: Ithemes security data is not included in the client reports.
- Fix: Backups failed with error "Database backup failed. Try to enable MySQL dump on your server.".
Download this release
Release Info
Developer | infinitewp |
Plugin | InfiniteWP Client |
Version | 1.8.6 |
Comparing to | |
See all releases |
Code changes from version 1.8.5 to 1.8.6
- addons/itheme_security/class-iwp-client-ithemes-security-class.php +2 -2
- backup.class.multicall.php +6 -1
- backup/backup.core.class.php +8 -0
- core.class.php +31 -8
- init.php +5 -2
- lib/ftp.class.php +28 -2
- pclzip.class.php +4 -4
- readme.txt +10 -1
addons/itheme_security/class-iwp-client-ithemes-security-class.php
CHANGED
@@ -193,10 +193,10 @@ final class IWP_MMB_IThemes_Security extends IWP_MMB_Core {
|
|
193 |
$range_search = '';
|
194 |
if (isset($datefrom) || isset($dateto)) {
|
195 |
if (isset($datefrom)) {
|
196 |
-
$range_search .= $and . "`init_timestamp
|
197 |
}
|
198 |
if (isset($dateto)) {
|
199 |
-
$range_search .= $and . "
|
200 |
}
|
201 |
}
|
202 |
|
193 |
$range_search = '';
|
194 |
if (isset($datefrom) || isset($dateto)) {
|
195 |
if (isset($datefrom)) {
|
196 |
+
$range_search .= $and . " `init_timestamp` between '" . esc_sql($datefrom) . "'";
|
197 |
}
|
198 |
if (isset($dateto)) {
|
199 |
+
$range_search .= $and . " '" . esc_sql($dateto) . "'";
|
200 |
}
|
201 |
}
|
202 |
|
backup.class.multicall.php
CHANGED
@@ -448,6 +448,7 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
|
|
448 |
$backupStage = 'backupDBMultiCall';
|
449 |
$this->statusLog($historyID, array('stage' => $backupStage, 'status' => 'completed', 'statusMsg' => 'backupDBCompleted','nextFunc' => 'backupDBZip', 'responseParams' => $db_final_response['success']));
|
450 |
unset($db_final_response['success']['response_data']);
|
|
|
451 |
//to continue in the same call
|
452 |
if(($db_loop_break_time - $total_time_part) > 5)
|
453 |
{
|
@@ -455,6 +456,7 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
|
|
455 |
}
|
456 |
else
|
457 |
{
|
|
|
458 |
$db_res_array = array();
|
459 |
$db_res_array['status'] = $db_final_response['success']['status'];
|
460 |
$db_res_array['backupParentHID'] = $db_final_response['success']['backupParentHID'];
|
@@ -625,7 +627,10 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
|
|
625 |
$this->unlinkBackupFiles($backup_file);
|
626 |
}
|
627 |
|
628 |
-
|
|
|
|
|
|
|
629 |
$this->unlinkBackupFiles($backup_file);
|
630 |
}
|
631 |
if($dropbox_result['status'] == 'partiallyCompleted')
|
448 |
$backupStage = 'backupDBMultiCall';
|
449 |
$this->statusLog($historyID, array('stage' => $backupStage, 'status' => 'completed', 'statusMsg' => 'backupDBCompleted','nextFunc' => 'backupDBZip', 'responseParams' => $db_final_response['success']));
|
450 |
unset($db_final_response['success']['response_data']);
|
451 |
+
delete_option('iwp_multical_db_dump_flag');
|
452 |
//to continue in the same call
|
453 |
if(($db_loop_break_time - $total_time_part) > 5)
|
454 |
{
|
456 |
}
|
457 |
else
|
458 |
{
|
459 |
+
delete_option('iwp_multical_db_dump_flag');
|
460 |
$db_res_array = array();
|
461 |
$db_res_array['status'] = $db_final_response['success']['status'];
|
462 |
$db_res_array['backupParentHID'] = $db_final_response['success']['backupParentHID'];
|
627 |
$this->unlinkBackupFiles($backup_file);
|
628 |
}
|
629 |
|
630 |
+
$dropbox_skip_errors = array('Failed to connect to content.dropboxapi.com port 443: Connection timed out',
|
631 |
+
'Could not resolve host: api.dropboxapi.com'
|
632 |
+
);
|
633 |
+
if (is_array($dropbox_result) && isset($dropbox_result['error']) && !in_array($dropbox_result['error'], $dropbox_skip_errors)) {
|
634 |
$this->unlinkBackupFiles($backup_file);
|
635 |
}
|
636 |
if($dropbox_result['status'] == 'partiallyCompleted')
|
backup/backup.core.class.php
CHANGED
@@ -3888,6 +3888,7 @@ CREATE TABLE $wpdb->signups (
|
|
3888 |
'pass' => $ftp_details['ftp_password'],
|
3889 |
'host' => $ftp_details['ftp_hostname'],
|
3890 |
'path' => $ftp_details['ftp_remote_folder'],
|
|
|
3891 |
'ftp_site_folder' => $ftp_details['ftp_site_folder'],
|
3892 |
'passive' => $ftp_details['ftp_passive']?true:false
|
3893 |
);
|
@@ -3896,6 +3897,13 @@ CREATE TABLE $wpdb->signups (
|
|
3896 |
IWP_MMB_Backup_Options::update_iwp_backup_option('IWP_sftp', $opts);
|
3897 |
}else{
|
3898 |
update_option('IWP_service', 'ftp');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3899 |
IWP_MMB_Backup_Options::update_iwp_backup_option('IWP_ftp', $opts);
|
3900 |
}
|
3901 |
}elseif (!empty($params['account_info']['iwp_amazon_s3'])) {
|
3888 |
'pass' => $ftp_details['ftp_password'],
|
3889 |
'host' => $ftp_details['ftp_hostname'],
|
3890 |
'path' => $ftp_details['ftp_remote_folder'],
|
3891 |
+
'port' => $ftp_details['ftp_port'],
|
3892 |
'ftp_site_folder' => $ftp_details['ftp_site_folder'],
|
3893 |
'passive' => $ftp_details['ftp_passive']?true:false
|
3894 |
);
|
3897 |
IWP_MMB_Backup_Options::update_iwp_backup_option('IWP_sftp', $opts);
|
3898 |
}else{
|
3899 |
update_option('IWP_service', 'ftp');
|
3900 |
+
if(!empty($ftp_details['ftp_ssl'])){
|
3901 |
+
$opts['host'] = $opts['host'].':'.$opts['port'];
|
3902 |
+
unset($opts['port']);
|
3903 |
+
IWP_MMB_Backup_Options::delete_iwp_backup_option('IWP_ssl_nossl');
|
3904 |
+
}else{
|
3905 |
+
IWP_MMB_Backup_Options::update_iwp_backup_option('IWP_ssl_nossl', 1);
|
3906 |
+
}
|
3907 |
IWP_MMB_Backup_Options::update_iwp_backup_option('IWP_ftp', $opts);
|
3908 |
}
|
3909 |
}elseif (!empty($params['account_info']['iwp_amazon_s3'])) {
|
core.class.php
CHANGED
@@ -203,8 +203,13 @@ class IWP_MMB_Core extends IWP_MMB_Helper
|
|
203 |
'backup_downlaod' => 'iwp_mmb_backup_downlaod'
|
204 |
);
|
205 |
|
206 |
-
add_action('rightnow_end', array( &$this, 'add_right_now_info' ));
|
207 |
-
|
|
|
|
|
|
|
|
|
|
|
208 |
add_action('admin_init', array(&$this,'admin_actions'));
|
209 |
add_filter('deprecated_function_trigger_error', '__return_false');
|
210 |
// add_action('wp_loaded', array( &$this, 'iwp_mmb_remote_action'), 2147483650);
|
@@ -1021,22 +1026,40 @@ class IWP_MMB_Core extends IWP_MMB_Helper
|
|
1021 |
|
1022 |
function iwp_admin_menu_actions($args){
|
1023 |
//to hide all updates
|
|
|
1024 |
$replace = get_option("iwp_client_brand");
|
1025 |
-
if(!empty($replace)){
|
1026 |
if(!empty($replace['hideUpdatesCPB'])){
|
1027 |
//add_filter('wp_get_update_data', array($this, 'iwp_wp_get_update_data'), 10, 2);
|
1028 |
$page = remove_submenu_page( 'index.php', 'update-core.php' );
|
1029 |
-
add_filter('
|
1030 |
-
add_filter('
|
1031 |
-
add_filter('
|
|
|
1032 |
}
|
1033 |
if(!empty($replace['hideFWPCPB'])){
|
1034 |
-
remove_submenu_page('themes.php','theme-editor.php');
|
1035 |
-
remove_submenu_page('plugins.php','plugin-editor.php');
|
|
|
|
|
|
|
1036 |
add_filter('plugin_action_links', array($this, 'iwp_client_replace_action_links'), 10, 2);
|
1037 |
}
|
1038 |
}
|
1039 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1040 |
|
1041 |
function iwp_user_admin_url($args, $args2){
|
1042 |
//for modifying the link available in plugin's view version details link.
|
203 |
'backup_downlaod' => 'iwp_mmb_backup_downlaod'
|
204 |
);
|
205 |
|
206 |
+
add_action('rightnow_end', array( &$this, 'add_right_now_info' ));
|
207 |
+
if( $this->iwp_mmb_multisite ){
|
208 |
+
add_action('network_admin_menu', array($this,'iwp_admin_menu_actions'), 10, 1);
|
209 |
+
}else{
|
210 |
+
add_action('admin_menu', array($this,'iwp_admin_menu_actions'), 10, 1);
|
211 |
+
}
|
212 |
+
add_action('init', array($this,'iwp_cpb_hide_updates'), 10, 1);
|
213 |
add_action('admin_init', array(&$this,'admin_actions'));
|
214 |
add_filter('deprecated_function_trigger_error', '__return_false');
|
215 |
// add_action('wp_loaded', array( &$this, 'iwp_mmb_remote_action'), 2147483650);
|
1026 |
|
1027 |
function iwp_admin_menu_actions($args){
|
1028 |
//to hide all updates
|
1029 |
+
global $iwp_mmb_core;
|
1030 |
$replace = get_option("iwp_client_brand");
|
1031 |
+
if(empty($iwp_mmb_core->request_params) && !empty($replace)){
|
1032 |
if(!empty($replace['hideUpdatesCPB'])){
|
1033 |
//add_filter('wp_get_update_data', array($this, 'iwp_wp_get_update_data'), 10, 2);
|
1034 |
$page = remove_submenu_page( 'index.php', 'update-core.php' );
|
1035 |
+
add_filter('transient_update_plugins', array($this, 'iwp_remove_core_updates'), 999999, 1);
|
1036 |
+
add_filter('site_transient_update_core', array($this, 'iwp_remove_core_updates'), 999999, 1);
|
1037 |
+
add_filter('site_transient_update_plugins', array($this, 'iwp_remove_core_updates'), 999999, 1);
|
1038 |
+
add_filter('site_transient_update_themes', array($this, 'iwp_remove_core_updates'), 999999, 1);
|
1039 |
}
|
1040 |
if(!empty($replace['hideFWPCPB'])){
|
1041 |
+
// remove_submenu_page('themes.php','theme-editor.php');
|
1042 |
+
// remove_submenu_page('plugins.php','plugin-editor.php'); // this is old method this allows editor in direct URL
|
1043 |
+
if (!defined('DISALLOW_FILE_EDIT')) {
|
1044 |
+
define('DISALLOW_FILE_EDIT', true);
|
1045 |
+
}
|
1046 |
add_filter('plugin_action_links', array($this, 'iwp_client_replace_action_links'), 10, 2);
|
1047 |
}
|
1048 |
}
|
1049 |
}
|
1050 |
+
|
1051 |
+
function iwp_cpb_hide_updates($args){
|
1052 |
+
global $iwp_mmb_core;
|
1053 |
+
$replace = get_option("iwp_client_brand");
|
1054 |
+
if(empty($iwp_mmb_core->request_params) && !empty($replace)){
|
1055 |
+
if(!empty($replace['hideUpdatesCPB'])){
|
1056 |
+
add_filter('transient_update_plugins', array($this, 'iwp_remove_core_updates'), 999999, 1);
|
1057 |
+
add_filter('site_transient_update_core', array($this, 'iwp_remove_core_updates'), 999999, 1);
|
1058 |
+
add_filter('site_transient_update_plugins', array($this, 'iwp_remove_core_updates'), 999999, 1);
|
1059 |
+
add_filter('site_transient_update_themes', array($this, 'iwp_remove_core_updates'), 999999, 1);
|
1060 |
+
}
|
1061 |
+
}
|
1062 |
+
}
|
1063 |
|
1064 |
function iwp_user_admin_url($args, $args2){
|
1065 |
//for modifying the link available in plugin's view version details link.
|
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.8.
|
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.8.
|
32 |
|
33 |
|
34 |
|
@@ -236,6 +236,9 @@ if (!function_exists ('iwp_mmb_add_readd_request')) {
|
|
236 |
if (!function_exists ('iwp_mmb_set_request')) {
|
237 |
function iwp_mmb_set_request(){
|
238 |
global $current_user, $iwp_mmb_core, $new_actions, $wp_db_version, $wpmu_version, $_wp_using_ext_object_cache, $iwp_mmb_activities_log;
|
|
|
|
|
|
|
239 |
if (empty($iwp_mmb_core->request_params)) {
|
240 |
return false;
|
241 |
}
|
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.8.6
|
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.8.6');
|
32 |
|
33 |
|
34 |
|
236 |
if (!function_exists ('iwp_mmb_set_request')) {
|
237 |
function iwp_mmb_set_request(){
|
238 |
global $current_user, $iwp_mmb_core, $new_actions, $wp_db_version, $wpmu_version, $_wp_using_ext_object_cache, $iwp_mmb_activities_log;
|
239 |
+
if (is_user_logged_in()) {
|
240 |
+
iwp_plugin_compatibility_fix();
|
241 |
+
}
|
242 |
if (empty($iwp_mmb_core->request_params)) {
|
243 |
return false;
|
244 |
}
|
lib/ftp.class.php
CHANGED
@@ -13,7 +13,7 @@ class IWP_MMB_ftp_wrapper {
|
|
13 |
public $timeout = 60;
|
14 |
public $passive = true;
|
15 |
public $system_type = '';
|
16 |
-
public $ssl =
|
17 |
public $use_server_certs = false;
|
18 |
public $disable_verify = true;
|
19 |
public $login_type = 'non-encrypted';
|
@@ -28,7 +28,17 @@ class IWP_MMB_ftp_wrapper {
|
|
28 |
public function connect() {
|
29 |
|
30 |
$time_start = time();
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
if ($this->conn_id) $result = ftp_login($this->conn_id, $this->username, $this->password);
|
34 |
|
@@ -37,8 +47,24 @@ class IWP_MMB_ftp_wrapper {
|
|
37 |
ftp_pasv($this->conn_id, $this->passive);
|
38 |
$this->system_type = ftp_systype($this->conn_id);
|
39 |
return true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
}
|
41 |
|
|
|
42 |
if (time() - $time_start > 19) {
|
43 |
global $iwp_backup_core;
|
44 |
$iwp_backup_core->log(sprintf(__('The %s connection timed out; if you entered the server correctly, then this is usually caused by a firewall blocking the connection - you should check with your web hosting company.', 'InfiniteWP'), 'FTP'), 'error');
|
13 |
public $timeout = 60;
|
14 |
public $passive = true;
|
15 |
public $system_type = '';
|
16 |
+
public $ssl = true;
|
17 |
public $use_server_certs = false;
|
18 |
public $disable_verify = true;
|
19 |
public $login_type = 'non-encrypted';
|
28 |
public function connect() {
|
29 |
|
30 |
$time_start = time();
|
31 |
+
if (function_exists('ftp_ssl_connect') && false !== $this->ssl) {
|
32 |
+
$this->conn_id = ftp_ssl_connect($this->host, $this->port, 15);
|
33 |
+
$attempting_ssl = true;
|
34 |
+
}
|
35 |
+
|
36 |
+
if ($this->conn_id) {
|
37 |
+
$this->login_type = 'encrypted';
|
38 |
+
$this->ssl = true;
|
39 |
+
} else {
|
40 |
+
$this->conn_id = ftp_connect($this->host, $this->port, 15);
|
41 |
+
}
|
42 |
|
43 |
if ($this->conn_id) $result = ftp_login($this->conn_id, $this->username, $this->password);
|
44 |
|
47 |
ftp_pasv($this->conn_id, $this->passive);
|
48 |
$this->system_type = ftp_systype($this->conn_id);
|
49 |
return true;
|
50 |
+
} elseif (!empty($attempting_ssl)) {
|
51 |
+
$this->ssl = false;
|
52 |
+
$this->login_type = 'non-encrypted';
|
53 |
+
$time_start = time();
|
54 |
+
$this->conn_id = ftp_connect($this->host, $this->port, 15);
|
55 |
+
if ($this->conn_id) $result = ftp_login($this->conn_id, $this->username, $this->password);
|
56 |
+
if (!empty($result)) {
|
57 |
+
ftp_set_option($this->conn_id, FTP_TIMEOUT_SEC, $this->timeout);
|
58 |
+
ftp_pasv($this->conn_id, $this->passive);
|
59 |
+
$this->system_type = ftp_systype($this->conn_id);
|
60 |
+
return true;
|
61 |
+
} else {
|
62 |
+
// Add back the previous PHP messages
|
63 |
+
|
64 |
+
}
|
65 |
}
|
66 |
|
67 |
+
// If we got here, then we failed
|
68 |
if (time() - $time_start > 19) {
|
69 |
global $iwp_backup_core;
|
70 |
$iwp_backup_core->log(sprintf(__('The %s connection timed out; if you entered the server correctly, then this is usually caused by a firewall blocking the connection - you should check with your web hosting company.', 'InfiniteWP'), 'FTP'), 'error');
|
pclzip.class.php
CHANGED
@@ -5308,10 +5308,10 @@ endif;
|
|
5308 |
|
5309 |
// ----- Go to the end of the zip file
|
5310 |
$v_size = iwp_mmb_get_file_size($this->zipname);
|
5311 |
-
$disk_space = iwp_mmb_check_disk_space();
|
5312 |
-
if ($disk_space != false) {
|
5313 |
-
|
5314 |
-
}
|
5315 |
|
5316 |
if($v_size === false)
|
5317 |
{
|
5308 |
|
5309 |
// ----- Go to the end of the zip file
|
5310 |
$v_size = iwp_mmb_get_file_size($this->zipname);
|
5311 |
+
// $disk_space = iwp_mmb_check_disk_space();
|
5312 |
+
// if ($disk_space != false) {
|
5313 |
+
// return array('error' => 'Your disk space is very low available space: '.$disk_space.'MB');
|
5314 |
+
// }
|
5315 |
|
5316 |
if($v_size === false)
|
5317 |
{
|
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:
|
6 |
Stable tag: trunk
|
7 |
|
8 |
Install this plugin on unlimited sites and manage them all from a central dashboard.
|
@@ -47,6 +47,15 @@ Credits: [Vladimir Prelovac](http://prelovac.com/vladimir) for his worker plugin
|
|
47 |
5. One-click updates
|
48 |
|
49 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
= 1.8.5 - Sep 4th 2018 =
|
51 |
* Improvement: Multisite support for broken link checker plugin.
|
52 |
* Improvement: MySQL DB dump process is improved in multicall and single call backup.
|
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: 5.0.3
|
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.8.6 - Feb 11th 2019 =
|
51 |
+
* Fix: Duo security plugin on WordPress site breaks the IWP client plugin connection while performing open admin action.
|
52 |
+
* Fix: Backup is retried when it failed with error "Failed to connect to content.dropboxapi.com port 443: Connection timed out. and Could not resolve host: api.dropboxapi.com.".
|
53 |
+
* Fix: Plugin updates count showing in plugin menu on WP admin page while hide plugin updates setting is enabled on InfiniteWP admin panel via Client Plugin Branding.
|
54 |
+
* Fix: Phoenix backup SFTP or FTP not using the custom port.
|
55 |
+
* Fix: FTP SSL not working on Phoenix backup.
|
56 |
+
* Fix: Ithemes security data is not included in the client reports.
|
57 |
+
* Fix: Backups failed with error "Database backup failed. Try to enable MySQL dump on your server.".
|
58 |
+
|
59 |
= 1.8.5 - Sep 4th 2018 =
|
60 |
* Improvement: Multisite support for broken link checker plugin.
|
61 |
* Improvement: MySQL DB dump process is improved in multicall and single call backup.
|