Handle hostnames with upper-case letters
[webmin.git] / webmin / backup_config.pl
1
2 do 'webmin-lib.pl';
3
4 # backup_config_files()
5 # Returns files and directories that can be backed up
6 sub backup_config_files
7 {
8 &get_miniserv_config(\%miniserv);
9 my @rv = ( "$config_directory/config",
10               "$config_directory/miniserv.conf",
11               "$config_directory/webmin.cats",
12               "$config_directory/webmin.catnames",
13               $miniserv{'keyfile'},
14               $miniserv{'certfile'},
15               $miniserv{'ca'},
16               $newmodule_users_file,
17             );
18 return @rv;
19 }
20
21 # pre_backup(&files)
22 # Called before the files are actually read
23 sub pre_backup
24 {
25 return undef;
26 }
27
28 # post_backup(&files)
29 # Called after the files are actually read
30 sub post_backup
31 {
32 return undef;
33 }
34
35 # pre_restore(&files)
36 # Called before the files are restored from a backup
37 sub pre_restore
38 {
39 # Get current configs, for later merging
40 &get_miniserv_config(\%oldminiserv);
41 &read_file("$config_directory/config", \%oldconfig);
42 return undef;
43 }
44
45 # post_restore(&files)
46 # Called after the files are restored from a backup
47 sub post_restore
48 {
49 # Merge in local settings that cannot be copied
50 my %miniserv;
51 &get_miniserv_config(\%miniserv);
52 foreach my $k (keys %oldminiserv) {
53         my $copy = 0;
54         foreach my $keep ("root", "mimetypes", "logfile", "pidfile",
55                           "env_WEBMIN_CONFIG", "env_WEBMIN_VAR", "logout",
56                           "userfile", "passwd_.*") {
57                 $copy = 1 if ($k =~ /^$keep$/);
58                 }
59         $miniserv{$k} = $oldminiserv{$k} if ($copy);
60         }
61 &put_miniserv_config(\%miniserv);
62
63 my %gconfig;
64 &read_file("$config_directory/config", \%gconfig);
65 foreach my $k (keys %oldconfig) {
66         my $copy = 0;
67         foreach my $nocopy ("os_type", "os_version",
68                             "real_os_type", "real_os_version",
69                             "find_pid_command", "ld_env", "passwd_.*") {
70                 $copy = 1 if ($k =~ /^$keep$/);
71                 }
72         $config{$k} = $oldconfig{$k} if ($copy);
73         }
74 &write_file("$config_directory/config", \%gconfig);
75
76 unlink("$config_directory/module.infos.cache");
77 &restart_miniserv();
78 return undef;
79 }
80
81 1;
82