Handle hostnames with upper-case letters
[webmin.git] / webmin / fix_os.cgi
1 #!/usr/local/bin/perl
2 # Set OS to automatically detected version
3
4 require './webmin-lib.pl';
5 &ReadParse();
6
7 # Do Webmin
8 &lock_file("$config_directory/config");
9 %osinfo = &detect_operating_system();
10 $gconfig{'real_os_type'} = $osinfo{'real_os_type'};
11 $gconfig{'real_os_version'} = $osinfo{'real_os_version'};
12 $gconfig{'os_type'} = $osinfo{'os_type'};
13 $gconfig{'os_version'} = $osinfo{'os_version'};
14 &write_file("$config_directory/config", \%gconfig);
15 &unlock_file("$config_directory/config");
16
17 # Do Usermin too, if installed and running an equivalent version
18 if (&foreign_installed("usermin")) {
19         &foreign_require("usermin", "usermin-lib.pl");
20         my %miniserv;
21         &usermin::get_usermin_miniserv_config(\%miniserv);
22         @ust = stat("$miniserv{'root'}/os_list.txt");
23         @wst = stat("$root_directory/os_list.txt");
24         if ($ust[7] == $wst[7]) {
25                 # os_list.txt is the same, so we can assume the same OS codes
26                 # are supported
27                 &lock_file($usermin::usermin_config);
28                 &usermin::get_usermin_config(\%uconfig);
29                 $uconfig{'real_os_type'} = $osinfo{'real_os_type'};
30                 $uconfig{'real_os_version'} = $osinfo{'real_os_version'};
31                 $uconfig{'os_type'} = $osinfo{'os_type'};
32                 $uconfig{'os_version'} = $osinfo{'os_version'};
33                 &usermin::put_usermin_config(\%uconfig);
34                 &unlock_file($usermin::usermin_config);
35                 }
36         }
37
38 &webmin_log("os");
39 &redirect($ENV{'HTTP_REFERER'});