BackWPup – WordPress Backup Plugin - Version 3.6.6

Version Description

Download this release

Release Info

Developer vanvox
Plugin Icon 128x128 BackWPup – WordPress Backup Plugin
Version 3.6.6
Comparing to
See all releases

Code changes from version 3.6.5 to 3.6.6

backwpup.php CHANGED
@@ -5,7 +5,7 @@
5
  * Description: WordPress Backup Plugin
6
  * Author: Inpsyde GmbH
7
  * Author URI: http://inpsyde.com
8
- * Version: 3.6.5
9
  * Text Domain: backwpup
10
  * Domain Path: /languages/
11
  * Network: true
5
  * Description: WordPress Backup Plugin
6
  * Author: Inpsyde GmbH
7
  * Author URI: http://inpsyde.com
8
+ * Version: 3.6.6
9
  * Text Domain: backwpup
10
  * Domain Path: /languages/
11
  * Network: true
inc/class-job.php CHANGED
@@ -1677,17 +1677,6 @@ final class BackWPup_Job {
1677
  continue;
1678
  }
1679
 
1680
- // Check if the file matches a filename in $this->additional_files_to_backup
1681
- // This prevents .sql files from being overwritten,
1682
- // as well as manifest.json, etc.
1683
- $alreadyAdded = count( array_filter( $this->additional_files_to_backup,
1684
- function ( $value ) use ( $file ) {
1685
-
1686
- return strstr( $value, basename( $file ) );
1687
- } ) ) > 0;
1688
- if ( $alreadyAdded ) {
1689
- continue;
1690
- }
1691
  $this->steps_data[ $this->step_working ]['on_file'] = $file;
1692
  //restart if needed
1693
  $restart_time = $this->get_restart_time();
1677
  continue;
1678
  }
1679
 
 
 
 
 
 
 
 
 
 
 
 
1680
  $this->steps_data[ $this->step_working ]['on_file'] = $file;
1681
  //restart if needed
1682
  $restart_time = $this->get_restart_time();
languages/backwpup.pot CHANGED
@@ -10,8 +10,8 @@ msgstr ""
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
- "POT-Creation-Date: 2018-11-23T12:41:21+00:00\n"
14
- "PO-Revision-Date: 2018-11-23T12:41:21+00:00\n"
15
  "X-Domain: backwpup\n"
16
 
17
  #: inc/class-adminbar.php:51
@@ -3188,7 +3188,7 @@ msgid "Adding Extra files to Archive"
3188
  msgstr ""
3189
 
3190
  #: inc/class-job.php:1641
3191
- #: inc/class-job.php:1717
3192
  msgid "Cannot create backup archive correctly. Aborting creation."
3193
  msgstr ""
3194
 
@@ -3196,207 +3196,207 @@ msgstr ""
3196
  msgid "Archiving Folder: %s"
3197
  msgstr ""
3198
 
3199
- #: inc/class-job.php:1728
3200
  msgid "Backup archive created."
3201
  msgstr ""
3202
 
3203
- #: inc/class-job.php:1742
3204
  msgid "The Backup archive will be too large for file operations with this PHP Version. You might want to consider splitting the backup job in multiple jobs with less files each."
3205
  msgstr ""
3206
 
3207
- #: inc/class-job.php:1747
3208
  msgid "Archive size is %s."
3209
  msgstr ""
3210
 
3211
- #: inc/class-job.php:1751
3212
  msgid "%1$d Files with %2$s in Archive."
3213
  msgstr ""
3214
 
3215
- #: inc/class-job.php:1792
3216
  msgid "No encryption key was provided. Aborting encryption."
3217
  msgstr ""
3218
 
3219
- #: inc/class-job.php:1800
3220
  msgid "%d. Trying to encrypt archive …"
3221
  msgstr ""
3222
 
3223
- #: inc/class-job.php:1812
3224
  msgid "Cannot open the archive for reading. Aborting encryption."
3225
  msgstr ""
3226
 
3227
- #: inc/class-job.php:1819
3228
  msgid "Cannot write the encrypted archive. Aborting encryption."
3229
  msgstr ""
3230
 
3231
- #: inc/class-job.php:1876
3232
  msgid "Encrypted %s of data."
3233
  msgstr ""
3234
 
3235
- #: inc/class-job.php:1881
3236
  msgid "Unable to delete unencrypted archive."
3237
  msgstr ""
3238
 
3239
- #: inc/class-job.php:1887
3240
  msgid "Unable to rename encrypted archive."
3241
  msgstr ""
3242
 
3243
- #: inc/class-job.php:1893
3244
  msgid "Archive has been successfully encrypted."
3245
  msgstr ""
3246
 
3247
- #: inc/class-job.php:1942
3248
  msgctxt "Folder name"
3249
  msgid "Folder %s does not exist"
3250
  msgstr ""
3251
 
3252
- #: inc/class-job.php:1949
3253
  msgctxt "Folder name"
3254
  msgid "Folder %s is not readable"
3255
  msgstr ""
3256
 
3257
- #: inc/class-job.php:1975
3258
  msgid "Link \"%s\" not following."
3259
  msgstr ""
3260
 
3261
- #: inc/class-job.php:1978
3262
  msgid "File \"%s\" is not readable!"
3263
  msgstr ""
3264
 
3265
- #: inc/class-job.php:1983
3266
  msgid "File size of “%s” cannot be retrieved. File might be too large and will not be added to queue."
3267
  msgstr ""
3268
 
3269
- #: inc/class-job.php:2069
3270
  msgid "%d. Trying to generate a manifest file …"
3271
  msgstr ""
3272
 
3273
- #: inc/class-job.php:2126
3274
  msgid "You may have noticed the manifest.json file in this archive."
3275
  msgstr ""
3276
 
3277
- #: inc/class-job.php:2127
3278
  msgid "manifest.json might be needed for later restoring a backup from this archive."
3279
  msgstr ""
3280
 
3281
- #: inc/class-job.php:2129
3282
  msgid "Please leave manifest.json untouched and in place. Otherwise it is safe to be ignored."
3283
  msgstr ""
3284
 
3285
- #: inc/class-job.php:2140
3286
  msgid "Added manifest.json file with %1$s to backup file list."
3287
  msgstr ""
3288
 
3289
- #: inc/class-job.php:2180
3290
  msgid "Wrong BackWPup JobID"
3291
  msgstr ""
3292
 
3293
- #: inc/class-job.php:2193
3294
  msgid "A BackWPup job is already running"
3295
  msgstr ""
3296
 
3297
- #: inc/class-job.php:2355
3298
  msgid "exec command is not active."
3299
  msgstr ""
3300
 
3301
- #: inc/class-job.php:2361
3302
  msgid "mysqldump binary not found."
3303
  msgstr ""
3304
 
3305
- #: inc/class-job.php:2388
3306
  msgctxt "SIGHUP: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3307
  msgid "Hangup detected on controlling terminal or death of controlling process"
3308
  msgstr ""
3309
 
3310
- #: inc/class-job.php:2394
3311
  msgctxt "SIGINT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3312
  msgid "Interrupt from keyboard"
3313
  msgstr ""
3314
 
3315
- #: inc/class-job.php:2400
3316
  msgctxt "SIGQUIT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3317
  msgid "Quit from keyboard"
3318
  msgstr ""
3319
 
3320
- #: inc/class-job.php:2406
3321
  msgctxt "SIGILL: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3322
  msgid "Illegal Instruction"
3323
  msgstr ""
3324
 
3325
- #: inc/class-job.php:2412
3326
  msgctxt "SIGABRT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3327
  msgid "Abort signal from abort(3)"
3328
  msgstr ""
3329
 
3330
- #: inc/class-job.php:2418
3331
  msgctxt "SIGBUS: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3332
  msgid "Bus error (bad memory access)"
3333
  msgstr ""
3334
 
3335
- #: inc/class-job.php:2424
3336
  msgctxt "SIGFPE: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3337
  msgid "Floating point exception"
3338
  msgstr ""
3339
 
3340
- #: inc/class-job.php:2430
3341
  msgctxt "SIGSEGV: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3342
  msgid "Invalid memory reference"
3343
  msgstr ""
3344
 
3345
- #: inc/class-job.php:2436
3346
  msgctxt "SIGTERM: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3347
  msgid "Termination signal"
3348
  msgstr ""
3349
 
3350
- #: inc/class-job.php:2442
3351
  msgctxt "SIGSTKFLT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3352
  msgid "Stack fault on coprocessor"
3353
  msgstr ""
3354
 
3355
- #: inc/class-job.php:2448
3356
  msgctxt "SIGUSR1: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3357
  msgid "User-defined signal 1"
3358
  msgstr ""
3359
 
3360
- #: inc/class-job.php:2454
3361
  msgctxt "SIGUSR2: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3362
  msgid "User-defined signal 2"
3363
  msgstr ""
3364
 
3365
- #: inc/class-job.php:2460
3366
  msgctxt "SIGURG: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3367
  msgid "Urgent condition on socket"
3368
  msgstr ""
3369
 
3370
- #: inc/class-job.php:2466
3371
  msgctxt "SIGXCPU: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3372
  msgid "CPU time limit exceeded"
3373
  msgstr ""
3374
 
3375
- #: inc/class-job.php:2472
3376
  msgctxt "SIGXFSZ: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3377
  msgid "File size limit exceeded"
3378
  msgstr ""
3379
 
3380
- #: inc/class-job.php:2478
3381
  msgctxt "SIGPWR: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3382
  msgid "Power failure"
3383
  msgstr ""
3384
 
3385
- #: inc/class-job.php:2484
3386
  msgctxt "SIGSYS: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3387
  msgid "Bad argument to routine"
3388
  msgstr ""
3389
 
3390
- #: inc/class-job.php:2493
3391
  msgid "Signal \"%1$s\" (%2$s) is sent to script!"
3392
  msgstr ""
3393
 
3394
- #: inc/class-job.php:2530
3395
- #: inc/class-job.php:2543
3396
  msgid "System: %s"
3397
  msgstr ""
3398
 
3399
- #: inc/class-job.php:2558
3400
  msgid "Exception caught in %1$s: %2$s"
3401
  msgstr ""
3402
 
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
+ "POT-Creation-Date: 2018-11-27T13:03:07+00:00\n"
14
+ "PO-Revision-Date: 2018-11-27T13:03:07+00:00\n"
15
  "X-Domain: backwpup\n"
16
 
17
  #: inc/class-adminbar.php:51
3188
  msgstr ""
3189
 
3190
  #: inc/class-job.php:1641
3191
+ #: inc/class-job.php:1706
3192
  msgid "Cannot create backup archive correctly. Aborting creation."
3193
  msgstr ""
3194
 
3196
  msgid "Archiving Folder: %s"
3197
  msgstr ""
3198
 
3199
+ #: inc/class-job.php:1717
3200
  msgid "Backup archive created."
3201
  msgstr ""
3202
 
3203
+ #: inc/class-job.php:1731
3204
  msgid "The Backup archive will be too large for file operations with this PHP Version. You might want to consider splitting the backup job in multiple jobs with less files each."
3205
  msgstr ""
3206
 
3207
+ #: inc/class-job.php:1736
3208
  msgid "Archive size is %s."
3209
  msgstr ""
3210
 
3211
+ #: inc/class-job.php:1740
3212
  msgid "%1$d Files with %2$s in Archive."
3213
  msgstr ""
3214
 
3215
+ #: inc/class-job.php:1781
3216
  msgid "No encryption key was provided. Aborting encryption."
3217
  msgstr ""
3218
 
3219
+ #: inc/class-job.php:1789
3220
  msgid "%d. Trying to encrypt archive …"
3221
  msgstr ""
3222
 
3223
+ #: inc/class-job.php:1801
3224
  msgid "Cannot open the archive for reading. Aborting encryption."
3225
  msgstr ""
3226
 
3227
+ #: inc/class-job.php:1808
3228
  msgid "Cannot write the encrypted archive. Aborting encryption."
3229
  msgstr ""
3230
 
3231
+ #: inc/class-job.php:1865
3232
  msgid "Encrypted %s of data."
3233
  msgstr ""
3234
 
3235
+ #: inc/class-job.php:1870
3236
  msgid "Unable to delete unencrypted archive."
3237
  msgstr ""
3238
 
3239
+ #: inc/class-job.php:1876
3240
  msgid "Unable to rename encrypted archive."
3241
  msgstr ""
3242
 
3243
+ #: inc/class-job.php:1882
3244
  msgid "Archive has been successfully encrypted."
3245
  msgstr ""
3246
 
3247
+ #: inc/class-job.php:1931
3248
  msgctxt "Folder name"
3249
  msgid "Folder %s does not exist"
3250
  msgstr ""
3251
 
3252
+ #: inc/class-job.php:1938
3253
  msgctxt "Folder name"
3254
  msgid "Folder %s is not readable"
3255
  msgstr ""
3256
 
3257
+ #: inc/class-job.php:1964
3258
  msgid "Link \"%s\" not following."
3259
  msgstr ""
3260
 
3261
+ #: inc/class-job.php:1967
3262
  msgid "File \"%s\" is not readable!"
3263
  msgstr ""
3264
 
3265
+ #: inc/class-job.php:1972
3266
  msgid "File size of “%s” cannot be retrieved. File might be too large and will not be added to queue."
3267
  msgstr ""
3268
 
3269
+ #: inc/class-job.php:2058
3270
  msgid "%d. Trying to generate a manifest file …"
3271
  msgstr ""
3272
 
3273
+ #: inc/class-job.php:2115
3274
  msgid "You may have noticed the manifest.json file in this archive."
3275
  msgstr ""
3276
 
3277
+ #: inc/class-job.php:2116
3278
  msgid "manifest.json might be needed for later restoring a backup from this archive."
3279
  msgstr ""
3280
 
3281
+ #: inc/class-job.php:2118
3282
  msgid "Please leave manifest.json untouched and in place. Otherwise it is safe to be ignored."
3283
  msgstr ""
3284
 
3285
+ #: inc/class-job.php:2129
3286
  msgid "Added manifest.json file with %1$s to backup file list."
3287
  msgstr ""
3288
 
3289
+ #: inc/class-job.php:2169
3290
  msgid "Wrong BackWPup JobID"
3291
  msgstr ""
3292
 
3293
+ #: inc/class-job.php:2182
3294
  msgid "A BackWPup job is already running"
3295
  msgstr ""
3296
 
3297
+ #: inc/class-job.php:2344
3298
  msgid "exec command is not active."
3299
  msgstr ""
3300
 
3301
+ #: inc/class-job.php:2350
3302
  msgid "mysqldump binary not found."
3303
  msgstr ""
3304
 
3305
+ #: inc/class-job.php:2377
3306
  msgctxt "SIGHUP: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3307
  msgid "Hangup detected on controlling terminal or death of controlling process"
3308
  msgstr ""
3309
 
3310
+ #: inc/class-job.php:2383
3311
  msgctxt "SIGINT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3312
  msgid "Interrupt from keyboard"
3313
  msgstr ""
3314
 
3315
+ #: inc/class-job.php:2389
3316
  msgctxt "SIGQUIT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3317
  msgid "Quit from keyboard"
3318
  msgstr ""
3319
 
3320
+ #: inc/class-job.php:2395
3321
  msgctxt "SIGILL: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3322
  msgid "Illegal Instruction"
3323
  msgstr ""
3324
 
3325
+ #: inc/class-job.php:2401
3326
  msgctxt "SIGABRT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3327
  msgid "Abort signal from abort(3)"
3328
  msgstr ""
3329
 
3330
+ #: inc/class-job.php:2407
3331
  msgctxt "SIGBUS: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3332
  msgid "Bus error (bad memory access)"
3333
  msgstr ""
3334
 
3335
+ #: inc/class-job.php:2413
3336
  msgctxt "SIGFPE: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3337
  msgid "Floating point exception"
3338
  msgstr ""
3339
 
3340
+ #: inc/class-job.php:2419
3341
  msgctxt "SIGSEGV: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3342
  msgid "Invalid memory reference"
3343
  msgstr ""
3344
 
3345
+ #: inc/class-job.php:2425
3346
  msgctxt "SIGTERM: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3347
  msgid "Termination signal"
3348
  msgstr ""
3349
 
3350
+ #: inc/class-job.php:2431
3351
  msgctxt "SIGSTKFLT: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3352
  msgid "Stack fault on coprocessor"
3353
  msgstr ""
3354
 
3355
+ #: inc/class-job.php:2437
3356
  msgctxt "SIGUSR1: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3357
  msgid "User-defined signal 1"
3358
  msgstr ""
3359
 
3360
+ #: inc/class-job.php:2443
3361
  msgctxt "SIGUSR2: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3362
  msgid "User-defined signal 2"
3363
  msgstr ""
3364
 
3365
+ #: inc/class-job.php:2449
3366
  msgctxt "SIGURG: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3367
  msgid "Urgent condition on socket"
3368
  msgstr ""
3369
 
3370
+ #: inc/class-job.php:2455
3371
  msgctxt "SIGXCPU: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3372
  msgid "CPU time limit exceeded"
3373
  msgstr ""
3374
 
3375
+ #: inc/class-job.php:2461
3376
  msgctxt "SIGXFSZ: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3377
  msgid "File size limit exceeded"
3378
  msgstr ""
3379
 
3380
+ #: inc/class-job.php:2467
3381
  msgctxt "SIGPWR: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3382
  msgid "Power failure"
3383
  msgstr ""
3384
 
3385
+ #: inc/class-job.php:2473
3386
  msgctxt "SIGSYS: Please see http://man7.org/linux/man-pages/man7/signal.7.html for details"
3387
  msgid "Bad argument to routine"
3388
  msgstr ""
3389
 
3390
+ #: inc/class-job.php:2482
3391
  msgid "Signal \"%1$s\" (%2$s) is sent to script!"
3392
  msgstr ""
3393
 
3394
+ #: inc/class-job.php:2519
3395
+ #: inc/class-job.php:2532
3396
  msgid "System: %s"
3397
  msgstr ""
3398
 
3399
+ #: inc/class-job.php:2547
3400
  msgid "Exception caught in %1$s: %2$s"
3401
  msgstr ""
3402
 
readme.txt CHANGED
@@ -2,17 +2,15 @@
2
  Contributors: inpsyde, cocreation, danielhuesken, Bueltge, nullbyte
3
  Tags: backup, database backup, cloud backup, restore, wordpress backup
4
  Requires at least: 3.9
5
- Tested up to: 4.9.8
6
  Requires PHP: 5.3
7
- Stable tag: 3.6.5
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
11
  Schedule complete automatic backups of your WordPress installation. Decide which content will be stored (Dropbox, S3…). This is the free version
12
 
13
- == Description ==
14
-
15
- **30% Black Friday - Cyber Monday discount for BackWPup PRO - only valid from 23 to 26 November [Save 30% and get the PRO now!](https://backwpup.com/#buy)**
16
 
17
  The **backup plugin** **[BackWPup](https://backwpup.com/)** can be used to save your complete installation including /wp-content/ and push them to an external Backup Service, like **Dropbox**, **S3**, **FTP** and many more, see list below. With a single backup .zip file you are able to easily restore an installation. Please understand: this free version will not be supported as good as the [BackWPup Pro version](https://backwpup.com). With our premium version you get first class support and more features.
18
 
@@ -22,7 +20,7 @@ The **backup plugin** **[BackWPup](https://backwpup.com/)** can be used to save
22
  * Optimize Database
23
  * Check and repair Database
24
  * File backup
25
- * Backups in zip, tar, tar.gz, tar.bz2 format *(needs gz, bz2, ZipArchive)*
26
  * Store backup to directory
27
  * Store backup to FTP server *(needs ftp)*
28
  * Store backup to Dropbox *(needs curl)*
@@ -162,10 +160,15 @@ Yes. You need to have writing access to the wp-config.php file (usually residing
162
  [You can find a detailed tutorial in the BackWPup documentation.](https://backwpup.com/docs/install-backwpup-pro-activate-licence/)
163
 
164
  == Changelog ==
 
 
 
 
 
165
  = Version 3.6.5 =
166
  Release Date: Nov 23, 2018
167
 
168
- * Fixed: Admin notice won't update correctly
169
 
170
  = Version 3.6.4 =
171
  Release Date: Nov 22, 2018
@@ -177,7 +180,7 @@ Release Date: Nov 22, 2018
177
  * Fixed: Exclude restore directories to be copied during a restore phase
178
  * Fixed: Standalone App has no encryption support
179
  * Fixed: Open basedir, backup dir is not within the allowed path
180
- * Fixed: Unable to download backup file because of mime_content_type function missing in some enviroment
181
  * Tweak: Encryption Settings UI
182
  * Tweak: Minor translations issues
183
  * Tweak: Remove languages files from the free version, the plugin will use translation.wordpress.org
2
  Contributors: inpsyde, cocreation, danielhuesken, Bueltge, nullbyte
3
  Tags: backup, database backup, cloud backup, restore, wordpress backup
4
  Requires at least: 3.9
5
+ Tested up to: 5.0.2
6
  Requires PHP: 5.3
7
+ Stable tag: 3.6.6
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
11
  Schedule complete automatic backups of your WordPress installation. Decide which content will be stored (Dropbox, S3…). This is the free version
12
 
13
+ == Description
 
 
14
 
15
  The **backup plugin** **[BackWPup](https://backwpup.com/)** can be used to save your complete installation including /wp-content/ and push them to an external Backup Service, like **Dropbox**, **S3**, **FTP** and many more, see list below. With a single backup .zip file you are able to easily restore an installation. Please understand: this free version will not be supported as good as the [BackWPup Pro version](https://backwpup.com). With our premium version you get first class support and more features.
16
 
20
  * Optimize Database
21
  * Check and repair Database
22
  * File backup
23
+ * Backups in zip, tar, tar.gz format *(needs gz, ZipArchive)*
24
  * Store backup to directory
25
  * Store backup to FTP server *(needs ftp)*
26
  * Store backup to Dropbox *(needs curl)*
160
  [You can find a detailed tutorial in the BackWPup documentation.](https://backwpup.com/docs/install-backwpup-pro-activate-licence/)
161
 
162
  == Changelog ==
163
+ = Version 3.6.6 =
164
+ Release Date: Nov 28, 2018
165
+
166
+ * Fixed: Files could be excluded from the backup because of incorrect string comparison
167
+
168
  = Version 3.6.5 =
169
  Release Date: Nov 23, 2018
170
 
171
+ * Fixed: Admin notice wont update correctly
172
 
173
  = Version 3.6.4 =
174
  Release Date: Nov 22, 2018
180
  * Fixed: Exclude restore directories to be copied during a restore phase
181
  * Fixed: Standalone App has no encryption support
182
  * Fixed: Open basedir, backup dir is not within the allowed path
183
+ * Fixed: Unable to download backup file because of mime_content_type function missing in some environment
184
  * Tweak: Encryption Settings UI
185
  * Tweak: Minor translations issues
186
  * Tweak: Remove languages files from the free version, the plugin will use translation.wordpress.org
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit538fad56e23cc127a64dec286c103e4a::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit30be2a33c4da94a99ba8a12a83eddc9b::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit538fad56e23cc127a64dec286c103e4a
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit538fad56e23cc127a64dec286c103e4a
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit538fad56e23cc127a64dec286c103e4a', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit538fad56e23cc127a64dec286c103e4a', 'loadClassLoader'));
25
 
26
  $includePaths = require __DIR__ . '/include_paths.php';
27
  $includePaths[] = get_include_path();
@@ -31,7 +31,7 @@ class ComposerAutoloaderInit538fad56e23cc127a64dec286c103e4a
31
  if ($useStaticLoader) {
32
  require_once __DIR__ . '/autoload_static.php';
33
 
34
- call_user_func(\Composer\Autoload\ComposerStaticInit538fad56e23cc127a64dec286c103e4a::getInitializer($loader));
35
  } else {
36
  $map = require __DIR__ . '/autoload_namespaces.php';
37
  foreach ($map as $namespace => $path) {
@@ -52,19 +52,19 @@ class ComposerAutoloaderInit538fad56e23cc127a64dec286c103e4a
52
  $loader->register(true);
53
 
54
  if ($useStaticLoader) {
55
- $includeFiles = Composer\Autoload\ComposerStaticInit538fad56e23cc127a64dec286c103e4a::$files;
56
  } else {
57
  $includeFiles = require __DIR__ . '/autoload_files.php';
58
  }
59
  foreach ($includeFiles as $fileIdentifier => $file) {
60
- composerRequire538fad56e23cc127a64dec286c103e4a($fileIdentifier, $file);
61
  }
62
 
63
  return $loader;
64
  }
65
  }
66
 
67
- function composerRequire538fad56e23cc127a64dec286c103e4a($fileIdentifier, $file)
68
  {
69
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
70
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit30be2a33c4da94a99ba8a12a83eddc9b
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit30be2a33c4da94a99ba8a12a83eddc9b', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit30be2a33c4da94a99ba8a12a83eddc9b', 'loadClassLoader'));
25
 
26
  $includePaths = require __DIR__ . '/include_paths.php';
27
  $includePaths[] = get_include_path();
31
  if ($useStaticLoader) {
32
  require_once __DIR__ . '/autoload_static.php';
33
 
34
+ call_user_func(\Composer\Autoload\ComposerStaticInit30be2a33c4da94a99ba8a12a83eddc9b::getInitializer($loader));
35
  } else {
36
  $map = require __DIR__ . '/autoload_namespaces.php';
37
  foreach ($map as $namespace => $path) {
52
  $loader->register(true);
53
 
54
  if ($useStaticLoader) {
55
+ $includeFiles = Composer\Autoload\ComposerStaticInit30be2a33c4da94a99ba8a12a83eddc9b::$files;
56
  } else {
57
  $includeFiles = require __DIR__ . '/autoload_files.php';
58
  }
59
  foreach ($includeFiles as $fileIdentifier => $file) {
60
+ composerRequire30be2a33c4da94a99ba8a12a83eddc9b($fileIdentifier, $file);
61
  }
62
 
63
  return $loader;
64
  }
65
  }
66
 
67
+ function composerRequire30be2a33c4da94a99ba8a12a83eddc9b($fileIdentifier, $file)
68
  {
69
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
70
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit538fad56e23cc127a64dec286c103e4a
8
  {
9
  public static $files = array (
10
  '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
@@ -2491,11 +2491,11 @@ class ComposerStaticInit538fad56e23cc127a64dec286c103e4a
2491
  public static function getInitializer(ClassLoader $loader)
2492
  {
2493
  return \Closure::bind(function () use ($loader) {
2494
- $loader->prefixLengthsPsr4 = ComposerStaticInit538fad56e23cc127a64dec286c103e4a::$prefixLengthsPsr4;
2495
- $loader->prefixDirsPsr4 = ComposerStaticInit538fad56e23cc127a64dec286c103e4a::$prefixDirsPsr4;
2496
- $loader->prefixesPsr0 = ComposerStaticInit538fad56e23cc127a64dec286c103e4a::$prefixesPsr0;
2497
- $loader->fallbackDirsPsr0 = ComposerStaticInit538fad56e23cc127a64dec286c103e4a::$fallbackDirsPsr0;
2498
- $loader->classMap = ComposerStaticInit538fad56e23cc127a64dec286c103e4a::$classMap;
2499
 
2500
  }, null, ClassLoader::class);
2501
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit30be2a33c4da94a99ba8a12a83eddc9b
8
  {
9
  public static $files = array (
10
  '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
2491
  public static function getInitializer(ClassLoader $loader)
2492
  {
2493
  return \Closure::bind(function () use ($loader) {
2494
+ $loader->prefixLengthsPsr4 = ComposerStaticInit30be2a33c4da94a99ba8a12a83eddc9b::$prefixLengthsPsr4;
2495
+ $loader->prefixDirsPsr4 = ComposerStaticInit30be2a33c4da94a99ba8a12a83eddc9b::$prefixDirsPsr4;
2496
+ $loader->prefixesPsr0 = ComposerStaticInit30be2a33c4da94a99ba8a12a83eddc9b::$prefixesPsr0;
2497
+ $loader->fallbackDirsPsr0 = ComposerStaticInit30be2a33c4da94a99ba8a12a83eddc9b::$fallbackDirsPsr0;
2498
+ $loader->classMap = ComposerStaticInit30be2a33c4da94a99ba8a12a83eddc9b::$classMap;
2499
 
2500
  }, null, ClassLoader::class);
2501
  }
vendor/composer/installed.json CHANGED
@@ -1524,17 +1524,17 @@
1524
  },
1525
  {
1526
  "name": "symfony/event-dispatcher",
1527
- "version": "v2.8.47",
1528
- "version_normalized": "2.8.47.0",
1529
  "source": {
1530
  "type": "git",
1531
  "url": "https://github.com/symfony/event-dispatcher.git",
1532
- "reference": "76494bc38ff38d90d01913d23b5271acd4d78dd3"
1533
  },
1534
  "dist": {
1535
  "type": "zip",
1536
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/76494bc38ff38d90d01913d23b5271acd4d78dd3",
1537
- "reference": "76494bc38ff38d90d01913d23b5271acd4d78dd3",
1538
  "shasum": "",
1539
  "mirrors": [
1540
  {
@@ -1557,7 +1557,7 @@
1557
  "symfony/dependency-injection": "",
1558
  "symfony/http-kernel": ""
1559
  },
1560
- "time": "2018-10-20T23:16:31+00:00",
1561
  "type": "library",
1562
  "extra": {
1563
  "branch-alias": {
1524
  },
1525
  {
1526
  "name": "symfony/event-dispatcher",
1527
+ "version": "v2.8.48",
1528
+ "version_normalized": "2.8.48.0",
1529
  "source": {
1530
  "type": "git",
1531
  "url": "https://github.com/symfony/event-dispatcher.git",
1532
+ "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0"
1533
  },
1534
  "dist": {
1535
  "type": "zip",
1536
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a77e974a5fecb4398833b0709210e3d5e334ffb0",
1537
+ "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0",
1538
  "shasum": "",
1539
  "mirrors": [
1540
  {
1557
  "symfony/dependency-injection": "",
1558
  "symfony/http-kernel": ""
1559
  },
1560
+ "time": "2018-11-21T14:20:20+00:00",
1561
  "type": "library",
1562
  "extra": {
1563
  "branch-alias": {
vendor/psr/log/Psr/Log/Test/TestLogger.php ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Psr\Log\Test;
4
+
5
+ use Psr\Log\AbstractLogger;
6
+
7
+ /**
8
+ * Used for testing purposes.
9
+ *
10
+ * It records all records and gives you access to them for verification.
11
+ *
12
+ * @method bool hasEmergency($record)
13
+ * @method bool hasAlert($record)
14
+ * @method bool hasCritical($record)
15
+ * @method bool hasError($record)
16
+ * @method bool hasWarning($record)
17
+ * @method bool hasNotice($record)
18
+ * @method bool hasInfo($record)
19
+ * @method bool hasDebug($record)
20
+ *
21
+ * @method bool hasEmergencyRecords()
22
+ * @method bool hasAlertRecords()
23
+ * @method bool hasCriticalRecords()
24
+ * @method bool hasErrorRecords()
25
+ * @method bool hasWarningRecords()
26
+ * @method bool hasNoticeRecords()
27
+ * @method bool hasInfoRecords()
28
+ * @method bool hasDebugRecords()
29
+ *
30
+ * @method bool hasEmergencyThatContains($message)
31
+ * @method bool hasAlertThatContains($message)
32
+ * @method bool hasCriticalThatContains($message)
33
+ * @method bool hasErrorThatContains($message)
34
+ * @method bool hasWarningThatContains($message)
35
+ * @method bool hasNoticeThatContains($message)
36
+ * @method bool hasInfoThatContains($message)
37
+ * @method bool hasDebugThatContains($message)
38
+ *
39
+ * @method bool hasEmergencyThatMatches($message)
40
+ * @method bool hasAlertThatMatches($message)
41
+ * @method bool hasCriticalThatMatches($message)
42
+ * @method bool hasErrorThatMatches($message)
43
+ * @method bool hasWarningThatMatches($message)
44
+ * @method bool hasNoticeThatMatches($message)
45
+ * @method bool hasInfoThatMatches($message)
46
+ * @method bool hasDebugThatMatches($message)
47
+ *
48
+ * @method bool hasEmergencyThatPasses($message)
49
+ * @method bool hasAlertThatPasses($message)
50
+ * @method bool hasCriticalThatPasses($message)
51
+ * @method bool hasErrorThatPasses($message)
52
+ * @method bool hasWarningThatPasses($message)
53
+ * @method bool hasNoticeThatPasses($message)
54
+ * @method bool hasInfoThatPasses($message)
55
+ * @method bool hasDebugThatPasses($message)
56
+ */
57
+ class TestLogger extends AbstractLogger
58
+ {
59
+ /**
60
+ * @var array
61
+ */
62
+ public $records = [];
63
+
64
+ public $recordsByLevel = [];
65
+
66
+ /**
67
+ * @inheritdoc
68
+ */
69
+ public function log($level, $message, array $context = [])
70
+ {
71
+ $record = [
72
+ 'level' => $level,
73
+ 'message' => $message,
74
+ 'context' => $context,
75
+ ];
76
+
77
+ $this->recordsByLevel[$record['level']][] = $record;
78
+ $this->records[] = $record;
79
+ }
80
+
81
+ public function hasRecords($level)
82
+ {
83
+ return isset($this->recordsByLevel[$level]);
84
+ }
85
+
86
+ public function hasRecord($record, $level)
87
+ {
88
+ if (is_string($record)) {
89
+ $record = ['message' => $record];
90
+ }
91
+ return $this->hasRecordThatPasses(function ($rec) use ($record) {
92
+ if ($rec['message'] !== $record['message']) {
93
+ return false;
94
+ }
95
+ if (isset($record['context']) && $rec['context'] !== $record['context']) {
96
+ return false;
97
+ }
98
+ return true;
99
+ }, $level);
100
+ }
101
+
102
+ public function hasRecordThatContains($message, $level)
103
+ {
104
+ return $this->hasRecordThatPasses(function ($rec) use ($message) {
105
+ return strpos($rec['message'], $message) !== false;
106
+ }, $level);
107
+ }
108
+
109
+ public function hasRecordThatMatches($regex, $level)
110
+ {
111
+ return $this->hasRecordThatPasses(function ($rec) use ($regex) {
112
+ return preg_match($regex, $rec['message']) > 0;
113
+ }, $level);
114
+ }
115
+
116
+ public function hasRecordThatPasses(callable $predicate, $level)
117
+ {
118
+ if (!isset($this->recordsByLevel[$level])) {
119
+ return false;
120
+ }
121
+ foreach ($this->recordsByLevel[$level] as $i => $rec) {
122
+ if (call_user_func($predicate, $rec, $i)) {
123
+ return true;
124
+ }
125
+ }
126
+ return false;
127
+ }
128
+
129
+ public function __call($method, $args)
130
+ {
131
+ if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) {
132
+ $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3];
133
+ $level = strtolower($matches[2]);
134
+ if (method_exists($this, $genericMethod)) {
135
+ $args[] = $level;
136
+ return call_user_func_array([$this, $genericMethod], $args);
137
+ }
138
+ }
139
+ throw new \BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()');
140
+ }
141
+
142
+ public function reset()
143
+ {
144
+ $this->records = [];
145
+ }
146
+ }
vendor/symfony/event-dispatcher/GenericEvent.php CHANGED
@@ -38,7 +38,7 @@ class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate
38
  /**
39
  * Getter for subject property.
40
  *
41
- * @return mixed $subject The observer subject
42
  */
43
  public function getSubject()
44
  {
38
  /**
39
  * Getter for subject property.
40
  *
41
+ * @return mixed The observer subject
42
  */
43
  public function getSubject()
44
  {