#!/usr/local/bin/perl # Update one config file use strict; use warnings; require './nginx-lib.pl'; &ReadParseMime(); our (%text, %in, %access); &error_setup($text{'manual_err'}); &can_edit_manual_config() || &error($text{'manual_ecannot'}); my @files = &get_manual_config_files(); $in{'file'} = &resolve_manual_config_file($in{'file'}, @files) || &error($text{'manual_efile'}); $in{'data'} =~ s/\r//g; my $fh = "CONF"; if ($in{'test'}) { # Backup the file, write to it, and then test the config my $temp = &transname(); ©_source_dest($in{'file'}, $temp); &open_lock_tempfile($fh, ">$in{'file'}"); &print_tempfile($fh, $in{'data'}); &close_tempfile($fh); my $err = &test_config(); if ($err) { # Bad config .. roll back ©_source_dest($temp, $in{'file'}); &unlink_file($temp); &error(&text('restart_etest', "".&html_escape($err)."")); } &unlink_file($temp); } else { # Just write out &open_lock_tempfile($fh, ">$in{'file'}"); &print_tempfile($fh, $in{'data'}); &close_tempfile($fh); } &update_last_config_change(); &webmin_log("manual", undef, $in{'file'}); if ($in{'id'}) { &redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'}))); } else { &redirect("index.cgi"); }