log.dat: Fixes Bug#12922 - adjusts regex to catch hostname for hostname or FQDN

- Most of the packages being searched for in the system logs section only put hostname into
   the logs. However HAProxy puts the FQDN. Reviewing RFC 5424 shows that this is following
   the requirements. The preferred order fromn the RFC is
   1.  FQDN
   2.  Static IP address
   3.  hostname
   4.  Dynamic IP address
   5.  the NILVALUE
- Most of the programs are using option 3 but option 1 is valid for HAProxy
- The regex change filters out the hostname from the FQDN if an extra 'dot' is present

Fixes: Bug#12922
Suggested-by: Michael <ip.fire@die-fritzens.de>
Tested-by: Michael <ip.fire@die-fritzens.de>
Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
This commit is contained in:
Adolf Belka
2023-03-08 15:59:55 +01:00
committed by Peter Müller
parent 452fd239f0
commit 282e3fe4fb

View File

@@ -231,7 +231,7 @@ while ($gzindex >=0 && $loop) {
#&General::log("reading $filestr");
READ:while (<FILE>) {
my $line = $_;
if ($line =~ /^${monthstr} ${daystr} ..:..:.. [\w\-]+ ${section}(.*)/) {
if ($line =~ /^${monthstr} ${daystr} ..:..:.. [\w\-\.]+ ${section}(.*)/) {
# when standard viewing, just keep in memory the correct slice
# it starts a '$start' and size is $viewport
# If export, then keep all lines...
@@ -276,7 +276,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'export'})
foreach $_ (@log)
{
/^... (..) (..:..:..) [\w\-]+ ${section}(.*)$/;
/^... (..) (..:..:..) [\w\-\.]+ ${section}(.*)$/;
my $day = $1;
$day =~ tr / /0/;
my $time = $cgiparams{'DAY'} ? "$2" : "$day/$2" ;
@@ -399,7 +399,7 @@ $lines = 0;
#print '<tt>';
foreach $_ (@log)
{
/^... (..) (..:..:..) [\w\-]+ ${section}(.*)$/;
/^... (..) (..:..:..) [\w\-\.]+ ${section}(.*)$/;
my $day = $1;
$day =~ tr / /0/;
my $time = $cgiparams{'DAY'} ? "$2" : "$day/$2" ;