Handle hostnames with upper-case letters
[webmin.git] / sendmail / build.cgi
1 #!/usr/local/bin/perl
2 # build.cgi
3 # Build a new sendmail.cf, after first confirming the changes
4
5 require './sendmail-lib.pl';
6 require './features-lib.pl';
7 $features_access || &error($text{'features_ecannot'});
8 &ReadParse();
9 $cmd = "cd $config{'sendmail_features'}/m4 ; m4 $config{'sendmail_features'}/m4/cf.m4 $config{'sendmail_mc'}";
10
11 if ($in{'confirm'}) {
12         # Replace sendmail.cf with new version
13         &lock_file($config{'sendmail_cf'});
14         system("$cmd 2>/dev/null >$config{'sendmail_cf'} </dev/null");
15         &unlock_file($config{'sendmail_cf'});
16         &restart_sendmail();
17         &webmin_log("build");
18         &redirect("");
19         }
20 else {
21         # Just show user what would be done
22         &ui_print_header(undef, $text{'build_title'}, "");
23
24         if (!&has_command("m4")) {
25                 print &text('build_em4', "<tt>m4</tt>"),"<p>\n";
26                 &ui_print_footer("list_features.cgi", $text{'features_return'});
27                 exit;
28                 }
29
30         $temp = &transname();
31         $out = `$cmd 2>&1 >$temp`;
32         if ($?) {
33                 print &text('build_ebuild', "<pre>$out</pre>"),"<p>\n";
34                 &ui_print_footer("list_features.cgi", $text{'features_return'});
35                 exit;
36                 }
37         if (&has_command("diff") && -r $config{'sendmail_cf'}) {
38                 $diff = `diff $config{'sendmail_cf'} $temp 2>/dev/null`;
39                 if (!$diff) {
40                         print "$text{'build_nodiff'}<p>\n";
41                         &ui_print_footer("list_features.cgi", $text{'features_return'});
42                         exit;
43                         }
44                 }
45         
46         print "<center><form action=build.cgi>\n";
47         print "<input type=hidden name=confirm value=1>\n";
48         print &text('build_rusure', "<tt>$config{'sendmail_cf'}</tt>",
49                     "<tt>$config{'sendmail_mc'}</tt>"),"<p>\n";
50         print $text{'build_rusure2'},"<p>\n";
51         print "<input type=submit value='$text{'build_ok'}'>\n";
52         print "</form></center>\n";
53
54         if ($diff) {
55                 print "<b>$text{'build_diff'}</b><p>\n";
56                 print "<table border><tr $cb><td><pre>",
57                       $diff,"</pre></td></tr></table><p>\n";
58                 }
59         unlink($temp);
60
61         &ui_print_footer("list_features.cgi", $text{'features_return'});
62         }
63