#!/usr/local/bin/perl # allmanual_save.cgi # Save an entire config file require './apache-lib.pl'; &ReadParseMime(); $access{'types'} eq '*' && $access{'virts'} eq '*' || &error($text{'manual_ecannot'}); $conf = &get_config(); @files = &unique(map { $_->{'file'} } @$conf); &indexof($in{'file'}, @files) >= 0 || &error($text{'manual_efile'}); $temp = &transname(); &execute_command("cp ".quotemeta($in{'file'})." $temp"); $in{'data'} =~ s/\r//g; &lock_file($in{'file'}); &open_tempfile(FILE, ">$in{'file'}"); &print_tempfile(FILE, $in{'data'}); &close_tempfile(FILE); &unlock_file($in{'file'}); if ($config{'test_manual'}) { $err = &test_config(); if ($err) { &execute_command("mv $temp '$in{'file'}'"); &error(&text('manual_etest', "
$err
")); } } unlink($temp); &webmin_log("manual", undef, undef, { 'file' => $in{'file'} }); &redirect("");