File: modifyhostconfig.cgi

package info (click to toggle)
webmin 1.180-3sarge1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 16,900 kB
  • ctags: 2,152
  • sloc: perl: 55,792; java: 1,362; sh: 980; ansic: 221; makefile: 191
file content (51 lines) | stat: -rwxr-xr-x 1,094 bytes parent folder | download
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("");