ezmlm-web code:
* handle a missing backup conversion directory gracefully (useful for encrypted lists, that were created without ezmlm-web)
This commit is contained in:
parent
91997a903c
commit
b4ee37b00e
1 changed files with 27 additions and 5 deletions
|
@ -614,6 +614,7 @@ sub _is_encrypted {
|
||||||
# 1) as part of the plaintext->encryption conversion of a list
|
# 1) as part of the plaintext->encryption conversion of a list
|
||||||
# 2) after calling ezmlm-make for an encrypted list (since the dotqmail files
|
# 2) after calling ezmlm-make for an encrypted list (since the dotqmail files
|
||||||
# are overwritten by ezmlm-make)
|
# are overwritten by ezmlm-make)
|
||||||
|
# This function may safely assume, that the backup_dir exists already.
|
||||||
sub _cleanup_dotqmail_files {
|
sub _cleanup_dotqmail_files {
|
||||||
my $list_dir = shift;
|
my $list_dir = shift;
|
||||||
my ($backup_dir, $dot_loc, $dot_prefix);
|
my ($backup_dir, $dot_loc, $dot_prefix);
|
||||||
|
@ -745,11 +746,25 @@ sub _enable_encryption_config_file {
|
||||||
}
|
}
|
||||||
|
|
||||||
# store the current original config file
|
# store the current original config file
|
||||||
if ((-e "$list_dir/config") && (!File::Copy::copy("$list_dir/config",
|
if (-e "$list_dir/config") {
|
||||||
"$backup_dir/config.original"))) {
|
if ((! -d $backup_dir) && !mkdir($backup_dir)) {
|
||||||
warn "[GpgEzmlm] failed to save the current ezmlm-idx config file ('"
|
warn "[GpgEzmlm] failed to create gpg-ezmlm conversion "
|
||||||
. "$list_dir/config') to '$backup_dir/config.original': $!";
|
. "backup dir ($backup_dir): $!";
|
||||||
return undef;
|
return undef;
|
||||||
|
}
|
||||||
|
if (!File::Copy::copy("$list_dir/config",
|
||||||
|
"$backup_dir/config.original")) {
|
||||||
|
warn "[GpgEzmlm] failed to save the current ezmlm-idx "
|
||||||
|
. "config file ('$list_dir/config') to "
|
||||||
|
. "'$backup_dir/config.original': $!";
|
||||||
|
return undef;
|
||||||
|
{
|
||||||
|
} else {
|
||||||
|
# the current config file is missing - but we need to restore
|
||||||
|
# the original anyway.
|
||||||
|
# This should not happen.
|
||||||
|
warn "[GpgEzmlm] the original config file ('$list_dir/config') "
|
||||||
|
. "is missing - continuing anyway.";
|
||||||
}
|
}
|
||||||
|
|
||||||
# copy the encryption config file to the list directory
|
# copy the encryption config file to the list directory
|
||||||
|
@ -778,6 +793,13 @@ sub _enable_plaintext_config_file {
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# create the encryption backup dir if necessary
|
||||||
|
if ((! -e $backup_dir) && (!mkdir($backup_dir))) {
|
||||||
|
warn "[GpgEzmlm] failed to create gpg-ezmlm conversion backup dir ("
|
||||||
|
. "$backup_dir): $!";
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
# store the current gpg-ezmlm config file
|
# store the current gpg-ezmlm config file
|
||||||
unless (File::Copy::copy("$list_dir/config",
|
unless (File::Copy::copy("$list_dir/config",
|
||||||
"$backup_dir/config.gpg-ezmlm")) {
|
"$backup_dir/config.gpg-ezmlm")) {
|
||||||
|
|
Loading…
Reference in a new issue