<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"># log_parser.pl
# Functions for parsing this module's logs

do 'mysql-lib.pl';

# parse_webmin_log(user, script, action, type, object, &amp;params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($action eq 'stop') {
	return $text{'log_stop'};
	}
elsif ($action eq 'start') {
	return $text{'log_start'};
	}
elsif ($action eq 'cnf') {
	return $text{'log_cnf'};
	}
elsif ($action eq 'kill') {
	return &amp;text('log_kill', $object);
	}
elsif ($action eq 'vars') {
	return &amp;text('log_vars', $object);
	}
elsif ($type eq 'db') {
	return &amp;text("log_${type}_${action}", "&lt;tt&gt;$object&lt;/tt&gt;");
	}
elsif ($type eq 'dbs' || $type eq 'users' || $type eq 'hosts' ||
       $type eq 'cprivs' || $type eq 'tprivs' || $type eq 'dbprivs') {
	return &amp;text("log_${type}_${action}", $object);
	}
elsif ($type eq 'table' || $type eq 'index' || $type eq 'view') {
	return &amp;text("log_${type}_${action}", "&lt;tt&gt;$object&lt;/tt&gt;",
		     "&lt;tt&gt;$p-&gt;{'db'}&lt;/tt&gt;");
	}
elsif ($type eq 'tables') {
	return &amp;text("log_${type}_${action}", $object,
		     "&lt;tt&gt;$p-&gt;{'db'}&lt;/tt&gt;");
	}
elsif ($type eq 'field') {
	$p-&gt;{'size'} =~ s/\s+$//;
	return &amp;text("log_${type}_${action}", "&lt;tt&gt;$object&lt;/tt&gt;",
		     "&lt;tt&gt;$p-&gt;{'table'}&lt;/tt&gt;", "&lt;tt&gt;$p-&gt;{'db'}&lt;/tt&gt;",
		     "&lt;tt&gt;$p-&gt;{'type'}$p-&gt;{'size'}&lt;/tt&gt;");
	}
elsif ($type eq 'fields') {
	return &amp;text("log_${type}_${action}", $object,
		     "&lt;tt&gt;$p-&gt;{'table'}&lt;/tt&gt;", "&lt;tt&gt;$p-&gt;{'db'}&lt;/tt&gt;");
	}
elsif ($type eq 'data') {
	return &amp;text("log_${type}_${action}", "&lt;tt&gt;$object&lt;/tt&gt;",
		     "&lt;tt&gt;$p-&gt;{'table'}&lt;/tt&gt;", "&lt;tt&gt;$p-&gt;{'db'}&lt;/tt&gt;");
	}
elsif ($action eq 'exec') {
	return &amp;text($long ? 'log_exec_l' : 'log_exec', "&lt;tt&gt;$object&lt;/tt&gt;",
		     "&lt;tt&gt;".&amp;html_escape($p-&gt;{'cmd'})."&lt;/tt&gt;");
	}
elsif ($type eq 'user' || $type eq 'perm' || $type eq 'host' ||
       $type eq 'tpriv' || $type eq 'cpriv') {
	$p-&gt;{'user'} = $text{'log_anon'}
		if ($p-&gt;{'user'} eq '-' || $p-&gt;{'user'} eq '%');
	$p-&gt;{'db'} = $text{'log_any'}
		if ($p-&gt;{'db'} eq '-' || $p-&gt;{'db'} eq '%');
	$p-&gt;{'host'} = $text{'log_any'}
		if ($p-&gt;{'host'} eq '-' || $p-&gt;{'host'} eq '%' ||
		    $p-&gt;{'host'} eq '');
	local $t = "log_${type}_${action}";
	if ($long &amp;&amp; $text{$t.'_l'}) { $t .= '_l'; }
	return &amp;text($t, "&lt;tt&gt;$p-&gt;{'user'}&lt;/tt&gt;",
		     "&lt;tt&gt;$p-&gt;{'host'}&lt;/tt&gt;", "&lt;tt&gt;$p-&gt;{'db'}&lt;/tt&gt;",
		     "&lt;tt&gt;$p-&gt;{'table'}&lt;/tt&gt;", "&lt;tt&gt;$p-&gt;{'field'}&lt;/tt&gt;");
	}
elsif ($action eq 'backup') {
	$object = "" if ($object eq "-");
	return &amp;text($object ? ($long ? 'log_backup_l' : 'log_backup')
			     : ($long ? 'log_backup_all_l' : 'log_backup_all'),
		     "&lt;tt&gt;$object&lt;/tt&gt;",
		     "&lt;tt&gt;".&amp;html_escape($p-&gt;{'file'})."&lt;/tt&gt;");
	}
elsif ($action eq 'execfile') {
	return &amp;text($p-&gt;{'mode'} ? 'log_execupload' : 'log_execfile',
		     "&lt;tt&gt;".&amp;html_escape($p-&gt;{'file'})."&lt;/tt&gt;");
	}
elsif ($action eq 'import') {
	return &amp;text($p-&gt;{'mode'} ? 'log_importupload' : 'log_importfile',
		     "&lt;tt&gt;".&amp;html_escape($p-&gt;{'file'})."&lt;/tt&gt;");
	}
elsif ($action eq 'set') {
	return &amp;text('log_set', $object);
	}
elsif ($action eq 'root') {
	return $text{'log_root'};
	}
elsif ($action eq 'manual') {
	return $text{'log_manual'};
	}
else {
	return undef;
	}
}

</pre></body></html>