Hello, > On 26 Oct 2020, at 09:52, Leo Hofmann wrote: > > Hi Michael, > thank you for reviewing & merging my patch! > > I agree, this was an interesting read. I think the web interface code could be improved. Feel free to point me to other issues, maybe I can contribute more. I saw that Daniel did already reach out to you. Great. There are loads of issues that we need help on. Welcome to the team. Best, -Michael > > Best regards, > Leo > > Am 23.10.2020 um 12:07 schrieb Michael Tremer: >> Hey Leo-Andres, >> >> Thank you for splitting the patch. This was easier to review. >> >> It is still interesting code and it is very interesting too that all the DHCP stuff is in header.pl. >> >> But that is outside the scope of this patch. >> >> I will merge it. Thank you! >> >> Best, >> -Michael >> >>> On 21 Oct 2020, at 11:48, Leo-Andres Hofmann wrote: >>> >>> Signed-off-by: Leo-Andres Hofmann >>> --- >>> config/cfgroot/header.pl | 159 +++++++++++++++++++-------------------- >>> 1 file changed, 79 insertions(+), 80 deletions(-) >>> >>> diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl >>> index 1046f5992..6322cfebe 100644 >>> --- a/config/cfgroot/header.pl >>> +++ b/config/cfgroot/header.pl >>> @@ -403,66 +403,65 @@ sub PrintActualLeases >>> $tr{'mac address'} >>> $tr{'hostname'} >>> $tr{'lease expires'} (local time d/m/y) >>> -Add to fix leases >>> +Add to fix leases >>> >>> END >>> ; >>> >>> open(LEASES,"/var/state/dhcp/dhcpd.leases") or die "Can't open dhcpd.leases"; >>> - while ($line = ) { >>> - next if( $line =~ /^\s*#/ ); >>> - chomp($line); >>> - @temp = split (' ', $line); >>> - >>> - if ($line =~ /^\s*lease/) { >>> - $ip = $temp[1]; >>> - #All field are not necessarily read. Clear everything >>> - $endtime = 0; >>> - $ether = ""; >>> - $hostname = ""; >>> - } >>> + while (my $line = ) { >>> + next if( $line =~ /^\s*#/ ); >>> + chomp($line); >>> + @temp = split (' ', $line); >>> + >>> + if ($line =~ /^\s*lease/) { >>> + $ip = $temp[1]; >>> + #All field are not necessarily read. Clear everything >>> + $endtime = 0; >>> + $ether = ""; >>> + $hostname = ""; >>> + } >>> >>> - if ($line =~ /^\s*ends/) { >>> - $line =~ /(\d+)\/(\d+)\/(\d+) (\d+):(\d+):(\d+)/; >>> - $endtime = timegm($6, $5, $4, $3, $2 - 1, $1 - 1900); >>> - } >>> + if ($line =~ /^\s*ends/) { >>> + $line =~ /(\d+)\/(\d+)\/(\d+) (\d+):(\d+):(\d+)/; >>> + $endtime = timegm($6, $5, $4, $3, $2 - 1, $1 - 1900); >>> + } >>> >>> - if ($line =~ /^\s*hardware ethernet/) { >>> - $ether = $temp[2]; >>> - $ether =~ s/;//g; >>> - } >>> + if ($line =~ /^\s*hardware ethernet/) { >>> + $ether = $temp[2]; >>> + $ether =~ s/;//g; >>> + } >>> >>> - if ($line =~ /^\s*client-hostname/) { >>> - $hostname = "$temp[1] $temp[2] $temp[3]"; >>> - $hostname =~ s/;//g; >>> - $hostname =~ s/\"//g; >>> - } >>> + if ($line =~ /^\s*client-hostname/) { >>> + $hostname = "$temp[1] $temp[2] $temp[3]"; >>> + $hostname =~ s/;//g; >>> + $hostname =~ s/\"//g; >>> + } >>> >>> - if ($line eq "}") { >>> - @record = ('IPADDR',$ip,'ENDTIME',$endtime,'ETHER',$ether,'HOSTNAME',$hostname); >>> - $record = {}; # create a reference to empty hash >>> - %{$record} = @record; # populate that hash with @record >>> - $entries{$record->{'IPADDR'}} = $record; # add this to a hash of hashes >>> - } >>> + if ($line eq "}") { >>> + @record = ('IPADDR',$ip,'ENDTIME',$endtime,'ETHER',$ether,'HOSTNAME',$hostname); >>> + $record = {}; # create a reference to empty hash >>> + %{$record} = @record; # populate that hash with @record >>> + $entries{$record->{'IPADDR'}} = $record; # add this to a hash of hashes >>> + } >>> } >>> close(LEASES); >>> >>> my $id = 0; >>> - my $col=""; >>> + my $col = ""; >>> foreach my $key (sort leasesort keys %entries) { >>> - print "
\n"; >>> - my $hostname = &cleanhtml($entries{$key}->{HOSTNAME},"y"); >>> + print "\n"; >>> + my $hostname = &cleanhtml($entries{$key}->{HOSTNAME},"y"); >>> >>> - if ($id % 2) { >>> - print ""; >>> - $col="bgcolor='$table1colour'"; >>> - } >>> - else { >>> - print ""; >>> - $col="bgcolor='$table2colour'"; >>> - } >>> + if ($id % 2) { >>> + print ""; >>> + $col="bgcolor='$table1colour'"; >>> + } else { >>> + print ""; >>> + $col="bgcolor='$table2colour'"; >>> + } >>> >>> - print <>> + print <>> $entries{$key}->{IPADDR} >>> $entries{$key}->{ETHER} >>>  $hostname >>> @@ -470,20 +469,20 @@ END >>> END >>> ; >>> >>> - ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst) = localtime ($entries{$key}->{ENDTIME}); >>> - $enddate = sprintf ("%02d/%02d/%d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec); >>> + ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $dst) = localtime ($entries{$key}->{ENDTIME}); >>> + $enddate = sprintf ("%02d/%02d/%d %02d:%02d:%02d",$mday,$mon+1,$year+1900,$hour,$min,$sec); >>> >>> - if ($entries{$key}->{ENDTIME} < time() ){ >>> - print "$enddate"; >>> - } else { >>> - print "$enddate"; >>> - } >>> - print <>> + if ($entries{$key}->{ENDTIME} < time() ){ >>> + print "$enddate"; >>> + } else { >>> + print "$enddate"; >>> + } >>> + print <>> >>> >>> END >>> ; >>> - $id++; >>> + $id++; >>> } >>> >>> print ""; >>> @@ -493,34 +492,34 @@ END >>> >>> # This sub is used during display of actives leases >>> sub leasesort { >>> - if (rindex ($dhcpsettings{'SORT_LEASELIST'},'Rev') != -1) >>> - { >>> - $qs=substr ($dhcpsettings{'SORT_LEASELIST'},0,length($dhcpsettings{'SORT_LEASELIST'})-3); >>> - if ($qs eq 'IPADDR') { >>> - @a = split(/\./,$entries{$a}->{$qs}); >>> - @b = split(/\./,$entries{$b}->{$qs}); >>> - ($b[0]<=>$a[0]) || >>> - ($b[1]<=>$a[1]) || >>> - ($b[2]<=>$a[2]) || >>> - ($b[3]<=>$a[3]); >>> - }else { >>> - $entries{$b}->{$qs} cmp $entries{$a}->{$qs}; >>> - } >>> - } >>> - else #not reverse >>> - { >>> - $qs=$dhcpsettings{'SORT_LEASELIST'}; >>> - if ($qs eq 'IPADDR') { >>> - @a = split(/\./,$entries{$a}->{$qs}); >>> - @b = split(/\./,$entries{$b}->{$qs}); >>> - ($a[0]<=>$b[0]) || >>> - ($a[1]<=>$b[1]) || >>> - ($a[2]<=>$b[2]) || >>> - ($a[3]<=>$b[3]); >>> - }else { >>> - $entries{$a}->{$qs} cmp $entries{$b}->{$qs}; >>> + if (rindex ($dhcpsettings{'SORT_LEASELIST'},'Rev') != -1) >>> + { >>> + $qs=substr ($dhcpsettings{'SORT_LEASELIST'},0,length($dhcpsettings{'SORT_LEASELIST'})-3); >>> + if ($qs eq 'IPADDR') { >>> + @a = split(/\./,$entries{$a}->{$qs}); >>> + @b = split(/\./,$entries{$b}->{$qs}); >>> + ($b[0]<=>$a[0]) || >>> + ($b[1]<=>$a[1]) || >>> + ($b[2]<=>$a[2]) || >>> + ($b[3]<=>$a[3]); >>> + } else { >>> + $entries{$b}->{$qs} cmp $entries{$a}->{$qs}; >>> + } >>> + } >>> + else #not reverse >>> + { >>> + $qs=$dhcpsettings{'SORT_LEASELIST'}; >>> + if ($qs eq 'IPADDR') { >>> + @a = split(/\./,$entries{$a}->{$qs}); >>> + @b = split(/\./,$entries{$b}->{$qs}); >>> + ($a[0]<=>$b[0]) || >>> + ($a[1]<=>$b[1]) || >>> + ($a[2]<=>$b[2]) || >>> + ($a[3]<=>$b[3]); >>> + } else { >>> + $entries{$a}->{$qs} cmp $entries{$b}->{$qs}; >>> + } >>> } >>> - } >>> } >>> >>> sub colorize { >>> -- >>> 2.27.0.windows.1 >>> >>>