|
Server : Apache/2.2.2 (Fedora) System : Linux App1.pathumtani.go.th 2.6.20-1.2320.fc5smp #1 SMP Tue Jun 12 19:40:16 EDT 2007 i686 User : apache ( 48) PHP Version : 5.2.9 Disable Function : NONE Directory : /proc/self/root/usr/libexec/webmin/proftpd/ |
Upload File : |
#!/usr/bin/perl
# save_vserv.cgi
# Save virtual server options such as the port and address
require './proftpd-lib.pl';
&ReadParse();
$conf = &get_config();
$vconf = $conf->[$in{'virt'}];
if ($in{'delete'}) {
# Delete a virtual server
&lock_file($vconf->{'file'});
&before_changing();
$lref = &read_file_lines($vconf->{'file'});
splice(@$lref, $vconf->{'line'},
$vconf->{'eline'} - $vconf->{'line'} + 1);
&flush_file_lines();
&after_changing();
&unlock_file($vconf->{'file'});
&webmin_log("virt", "delete", $vconf->{'value'});
&redirect("");
}
else {
# Update virtual server and directives
&error_setup($text{'vserv_err'});
# Check inputs
gethostbyname($in{'addr'}) || &to_ipaddress($in{'addr'}) ||
&error($text{'vserv_eaddr'});
$in{'Port_def'} || $in{'Port'} =~ /^\d+$/ ||
&error($text{'vserv_eport'});
$in{'ServerName_def'} || $in{'ServerName'} =~ /\S/ ||
&error($text{'vserv_ename'});
# Update <VirtualHost> directive
&lock_file($vconf->{'file'});
&before_changing();
$lref = &read_file_lines($vconf->{'file'});
$lref->[$vconf->{'line'}] = "<VirtualHost $in{'addr'}>";
# Update DocumentRoot and ServerName
&save_directive("ServerName", $in{'ServerName_def'} ? [ ] :
[ "\"$in{'ServerName'}\"" ],
$vconf->{'members'}, $conf);
&save_directive("Port", $in{'Port_def'} ? [ ] : [ $in{'Port'} ],
$vconf->{'members'}, $conf);
# write out file
&flush_file_lines();
&after_changing();
&unlock_file($vconf->{'file'});
&webmin_log("virt", "save", $vconf->{'value'}, \%in);
&redirect("virt_index.cgi?virt=$in{'virt'}");
}