#!/usr/local/bin/perl # check.cgi # Run a fetchmail config file require './fetchmail-lib.pl'; &ReadParse(); if ($config{'config_file'}) { $file = $config{'config_file'}; } else { &can_edit_user($in{'user'}) || &error($text{'poll_ecannot'}); @uinfo = getpwnam($in{'user'}); $file = "$uinfo[7]/.fetchmailrc"; $uheader = &text('poll_foruser', "$in{'user'}"); } &ui_print_unbuffered_header($uheader, $text{'check_title'}, ""); $cmd = "$config{'fetchmail_path'} -v -f '$file'"; if ($config{'mda_command'}) { $cmd .= " -m '$config{'mda_command'}'"; } if (defined($in{'idx'})) { @conf = &parse_config_file($file); $poll = $conf[$in{'idx'}]; $cmd .= " $poll->{'poll'}"; } print &text('check_exec', "$cmd"),"

\n"; print "

";
if ($< == 0) {
	# For webmin, switch to the user
	if ($in{'user'} ne 'root') {
		$cmd = &command_as_user($in{'user'}, 0, $cmd)
		}
	open(CMD, "$cmd 2>&1 |");
	&additional_log("exec", undef, "su '$in{'user'}' -c '$cmd'");
	}
else {
	# For usermin, which has already switched
	open(CMD, "$cmd 2>&1 |");
	}
while() {
	print &html_escape($_);
	}
close(CMD);
print "
\n"; if ($? > 256) { print "$text{'check_failed'}

\n"; } else { print "$text{'check_ok'}

\n"; } &webmin_log("check", defined($in{'idx'}) ? "server" : "file", $config{'config_file'} ? $file : $in{'user'}, $poll); if (!$fetchmail_config && $config{'view_mode'}) { &ui_print_footer("edit_user.cgi?user=$in{'user'}", $text{'user_return'}, "", $text{'index_return'}); } else { &ui_print_footer("", $text{'index_return'}); }