Handle hostnames with upper-case letters
[webmin.git] / usermin / backup_config.pl
1
2 do 'usermin-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_usermin_miniserv_config(\%miniserv);
9 local @rv = ( "$config{'usermin_dir'}/config",
10               "$config{'usermin_dir'}/miniserv.conf",
11               "$config{'usermin_dir'}/webmin.cats",
12               "$config{'usermin_dir'}/webmin.catnames",
13               "$config{'usermin_dir'}/usermin.mods",
14               $miniserv{'keyfile'},
15               $miniserv{'certfile'},
16               $miniserv{'ca'},
17               "$config{'usermin_dir'}/webmin.acl",
18               $miniserv{'userfile'},
19               "$config{'usermin_dir'}/user.acl",
20             );
21 foreach my $m (&list_modules()) {
22         push(@rv, "$config{'usermin_dir'}/$m->{'dir'}/config");
23         push(@rv, "$config{'usermin_dir'}/$m->{'dir'}/uconfig");
24         }
25 return @rv;
26 }
27
28 # pre_backup(&files)
29 # Called before the files are actually read
30 sub pre_backup
31 {
32 return undef;
33 }
34
35 # post_backup(&files)
36 # Called after the files are actually read
37 sub post_backup
38 {
39 return undef;
40 }
41
42 # pre_restore(&files)
43 # Called before the files are restored from a backup
44 sub pre_restore
45 {
46 # Get current configs, for later merging
47 &get_usermin_miniserv_config(\%oldminiserv);
48 &read_file("$config{'usermin_dir'}/config", \%oldconfig);
49 return undef;
50 }
51
52 # post_restore(&files)
53 # Called after the files are restored from a backup
54 sub post_restore
55 {
56 # Merge in local settings that cannot be copied
57 local %miniserv;
58 &get_usermin_miniserv_config(\%miniserv);
59 foreach my $k (keys %oldminiserv) {
60         my $copy = 0;
61         foreach my $keep ("root", "mimetypes", "logfile", "pidfile",
62                           "env_WEBMIN_CONFIG", "env_WEBMIN_VAR", "logout",
63                           "passwd_.*") {
64                 $copy = 1 if ($k =~ /^$keep$/);
65                 }
66         $miniserv{$k} = $oldminiserv{$k} if ($copy);
67         }
68 &put_usermin_miniserv_config(\%miniserv);
69
70 local %gconfig;
71 &read_file("$config{'usermin_dir'}/config", \%gconfig);
72 foreach my $k (keys %oldconfig) {
73         my $copy = 0;
74         foreach my $nocopy ("os_type", "os_version",
75                             "real_os_type", "real_os_version",
76                             "find_pid_command", "ld_env", "passwd_.*") {
77                 $copy = 1 if ($k =~ /^$keep$/);
78                 }
79         $config{$k} = $oldconfig{$k} if ($copy);
80         }
81 &write_file("$config{'usermin_dir'}/config", \%gconfig);
82
83 &flush_modules_cache();
84 &restart_usermin_miniserv();
85 return undef;
86 }
87
88 1;
89