1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
#!/usr/local/bin/perl
# modifyhostconfig.cgi
# Rewrites the hostconfig file
# Written by Michael A. Peters <mpeters@mac.com>
# for OSX/Darwin
require './init-lib.pl';
%access = &get_module_acl();
$access{'bootup'} == 1 || &error("You are not allowed to edit the bootup script");
&ReadParse();
if ( $in{'choice'} eq "custom" ) {
$setting = $in{'custom'};
}
else {
$setting = $in{'choice'};
}
if ( $setting =~ /^\%22(.*)\%22$/ ) {
$setting = $1;
}
$setting =~ s/\+/ /g;
if ( $setting =~ /[ ]/ ) {
$setting = "\"$setting\"";
}
# not all possibile blunders are fixed, but at least intelligently
# made ones...
$setting = "$in{'action'}=$setting";
$hostc = $config{'hostconfig'};
# modify and write the hostconfig file
@new = ();
&lock_file($config{'hostconfig'});
open(LOCAL, "$hostc");
@old = <LOCAL>;
close(LOCAL);
foreach $line (@old) {
$line =~ s/^$in{'action'}=(.*)$/$setting/;
push @new, $line;
}
open(LOCAL, "> $config{'hostconfig'}");
print LOCAL @new;
close(LOCAL);
&unlock_file($config{'hostconfig'});
&webmin_log("hostconfig", undef, undef, "\%in");
&redirect("");
|