Search
j0ke.net Open Build Service
>
Projects
>
server:monitoring
:
netflow
>
nfsen
> nfsen-1.3.8-rmnet-20190305.patch
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File nfsen-1.3.8-rmnet-20190305.patch of Package nfsen
diff -ru nfsen-1.3.8/ChangeLog nfsen-1.3.8-rmnet-20190305/ChangeLog --- nfsen-1.3.8/ChangeLog 2017-01-19 17:16:21.000000000 +0100 +++ nfsen-1.3.8-rmnet-20190305/ChangeLog 2019-03-05 13:34:47.269764558 +0100 @@ -1,3 +1,18 @@ +2019-03-05-rmnet +- Use Email::Sender::Simple->try_to_send to avoid seemingly uncatchable dies. + +2019-01-14-rmnet +- Replace Mail::Header + Mail::Internet with Email::Simple + Email::Sender + to avoid nfsend PANIC nfsend (libexec/NfAlert.pm) +- Apply fix for missing socket argument in calls to DoRebuild + https://sourceforge.net/p/nfsen/mailman/message/35850749/ + install.pl:556, libexec/NfProfile.pm:3444 +- Extend (still) too short limits from textareas from 10240 to 102400 + html/alerting.php:154, libexec/Nfcomm.pm:959, + html/details.php:1384 +- Compensate for potentially missing $_SESSION['profileinfo']['tstart'] + html/details.php:1326 + 2017-01-19 - Fix Security Vulenrability - which may execute arbitrary commands from the web interface. - Support rrdtools 1.6 diff -ru nfsen-1.3.8/html/alerting.php nfsen-1.3.8-rmnet-20190305/html/alerting.php --- nfsen-1.3.8/html/alerting.php 2014-06-23 21:27:50.000000000 +0200 +++ nfsen-1.3.8-rmnet-20190305/html/alerting.php 2019-01-14 18:15:13.541056085 +0100 @@ -151,7 +151,7 @@ </td> <td> <textarea name="filter" id="filter" multiline="true" wrap="phisical" rows="4" cols="70" - maxlength="10240" style="width:100%" <?php echo $disabled?>><?php + maxlength="102400" style="width:100%" <?php echo $disabled?>><?php foreach ( $alert['filter'] as $line ) { print htmlspecialchars(stripslashes($line)) . "\n"; } diff -ru nfsen-1.3.8/html/details.php nfsen-1.3.8-rmnet-20190305/html/details.php --- nfsen-1.3.8/html/details.php 2017-01-19 17:16:21.000000000 +0100 +++ nfsen-1.3.8-rmnet-20190305/html/details.php 2019-01-24 13:44:15.173040614 +0100 @@ -1323,9 +1323,9 @@ GMToffset = <?php echo $GMToffset;?> + curdate.getTimezoneOffset() * 60; CursorMode = <?php echo $detail_opts['cursor_mode'];?>; if ( CursorMode == 0 ) - SlotSelectInit(<?php echo $_SESSION['tstart'] . ", " . $_SESSION['tend']. ", " . $_SESSION['profileinfo']['tstart'] . ", " . $_SESSION['tleft']. ",576, $RRDoffset" ?>); + SlotSelectInit(<?php echo $_SESSION['tstart'] . ", " . $_SESSION['tend']. ", " . ($_SESSION['profileinfo']['tstart'] || $_SESSION['tstart']) . ", " . $_SESSION['tleft']. ",576, $RRDoffset" ?>); else - WSelectInit(<?php echo $_SESSION['tstart'] . ", " . $_SESSION['tend']. ", " . $_SESSION['profileinfo']['tstart'] . ", " . $_SESSION['tleft'] . ", " . $_SESSION['tright'] . ",576, $RRDoffset" ?>); + WSelectInit(<?php echo $_SESSION['tstart'] . ", " . $_SESSION['tend']. ", " . ($_SESSION['profileinfo']['tstart'] || $_SESSION['tstart']) . ", " . $_SESSION['tleft'] . ", " . $_SESSION['tright'] . ",576, $RRDoffset" ?>); <?php if ( array_key_exists('anchor', $_SESSION) ) { print "location.hash='" . $_SESSION['anchor'] . "';"; @@ -1381,7 +1381,7 @@ <INPUT TYPE="button" NAME="JSbutton2" Value="All Sources" onClick="SelectAllSources()"> </TD> <td style="vertical-align:top;"> - <textarea name="filter" id="filter" multiline="true" wrap="phisical" rows="6" cols="50" maxlength="10240"><?php + <textarea name="filter" id="filter" multiline="true" wrap="phisical" rows="6" cols="50" maxlength="102400"><?php $display_filter = array_key_exists('editfilter', $process_form) ? $process_form['editfilter'] : $process_form['filter']; foreach ( $display_filter as $line ) { print htmlspecialchars(stripslashes($line)) . "\n"; diff -ru nfsen-1.3.8/install.pl nfsen-1.3.8-rmnet-20190305/install.pl --- nfsen-1.3.8/install.pl 2017-01-19 17:16:21.000000000 +0100 +++ nfsen-1.3.8-rmnet-20190305/install.pl 2019-01-14 15:14:09.747589485 +0100 @@ -553,7 +553,7 @@ if( ! -f "$NfConf::PROFILEDATADIR/$profilepath/$channel/.nfstat") { # no shadow profile, but missing channel stat print "Rebuilding profile stats for '$profilegroup/$profilename'\n"; - NfProfile::DoRebuild(\%profileinfo, $profilename, $profilegroup, $profilepath, 1, 0); + NfProfile::DoRebuild(*STDOUT, \%profileinfo, $profilename, $profilegroup, $profilepath, 1, 0); NfProfile::WriteProfile(\%profileinfo); } # make sure it's own by nfsen_uid after the rebuild diff -ru nfsen-1.3.8/libexec/NfAlert.pm nfsen-1.3.8-rmnet-20190305/libexec/NfAlert.pm --- nfsen-1.3.8/libexec/NfAlert.pm 2014-06-23 21:27:50.000000000 +0200 +++ nfsen-1.3.8-rmnet-20190305/libexec/NfAlert.pm 2019-03-05 13:33:55.129674052 +0100 @@ -1,4 +1,4 @@ -#!%%PERL%% +#!/bin/perl # Copyright (c) 2004, SWITCH - Teleinformatikdienste fuer Lehre und Forschung # All rights reserved. # @@ -41,8 +41,9 @@ use Storable qw(lock_store lock_retrieve); use POSIX ":sys_wait_h"; use POSIX 'strftime'; -use Mail::Header; -use Mail::Internet; +use Email::Sender::Simple; +use Email::Simple; +use Email::Simple::Creator; use NfSen; use NfSenRRD; @@ -842,53 +843,29 @@ if ( ($$alertref{'action_type'} & 1) > 0 ) { syslog('debug', "alert '$alert' Send email to: $$alertref{'action_email'}"); - my @header = ( - "From: $NfConf::MAIL_FROM", - "To: $$alertref{'action_email'}", - "Subject: $$alertref{'action_subject'}" - ); - - my $mail_header = new Mail::Header( \@header ) ; - my $mail_body_string = $NfConf::MAIL_BODY; # substitute all vars - my %replace = ( - 'alert' => $alert, - 'timeslot' => $timeslot, + my %replace = ( + 'alert' => $alert, + 'timeslot' => $timeslot, ); foreach my $key ( keys %replace ) { $mail_body_string =~ s/\@$key\@/$replace{$key}/g; } - my @mail_body = split /\n/, $mail_body_string; - - my $mail = new Mail::Internet( - Header => $mail_header, - Body => \@mail_body, - ); - - my @sent_to = $mail->smtpsend( - Host => $NfConf::SMTP_SERVER , - Hello => $NfConf::SMTP_SERVER, - MailFrom => $NfConf::MAIL_FROM + my $mail = Email::Simple->create( + 'header' => [ + "From" => $NfConf::MAIL_FROM, + "To" => $$alertref{'action_email'}, + "Subject" => $$alertref{'action_subject'}, + ], + 'body' => $mail_body_string, ); - - # Do we have failed receipients? - my %_tmp; - my @_recv = split /\s*,\s*/, $$alertref{'action_email'}; - @_tmp{@_recv} = 1; - delete @_tmp{@sent_to}; - my @Failed = keys %_tmp; - - foreach my $rcpt ( @sent_to ) { - syslog('info', "alert '$alert' : Successful sent mail to: '$rcpt'"); - } - if ( scalar @Failed > 0 ) { - foreach my $rcpt ( @Failed ) { - syslog('err', "alert '$alert' : Failed to send alert email to: $rcpt"); - } - } - + if (Email::Sender::Simple->try_to_send($mail)) { + syslog('info', "alert '$alert' : Successfully sent alert mail"); + } else { + syslog('err', "alert '$alert' : Failed to send alert email!"); + } } # execute system command diff -ru nfsen-1.3.8/libexec/Nfcomm.pm nfsen-1.3.8-rmnet-20190305/libexec/Nfcomm.pm --- nfsen-1.3.8/libexec/Nfcomm.pm 2017-01-19 17:16:21.000000000 +0100 +++ nfsen-1.3.8-rmnet-20190305/libexec/Nfcomm.pm 2019-01-14 18:15:06.030046717 +0100 @@ -957,7 +957,7 @@ syslog('err', "Key format error for '$arg'"); return "key format error"; } - if ( length($value) > 10240 ) { + if ( length($value) > 102400 ) { syslog('err', "Argument too long - length check failed."); return "value too long."; } diff -ru nfsen-1.3.8/libexec/NfProfile.pm nfsen-1.3.8-rmnet-20190305/libexec/NfProfile.pm --- nfsen-1.3.8/libexec/NfProfile.pm 2014-06-23 21:27:50.000000000 +0200 +++ nfsen-1.3.8-rmnet-20190305/libexec/NfProfile.pm 2019-01-14 15:14:44.738643606 +0100 @@ -3441,7 +3441,7 @@ } else { $profileinfo{'type'} = 1; } - my $status = DoRebuild(\%profileinfo, $profile, $profilegroup, $profilepath, 0, 0); + my $status = DoRebuild(*STDOUT, \%profileinfo, $profile, $profilegroup, $profilepath, 0, 0); syslog('err', "Rebuilded profile '$profile' in group '$profilegroup': $status "); } if ( -f "$NfConf::PROFILESTATDIR/$profilepath/.CANCELED" ) { @@ -3453,7 +3453,7 @@ } else { $profileinfo{'type'} = 1; } - my $status = DoRebuild(\%profileinfo, $profile, $profilegroup, $profilepath, 0, 0); + my $status = DoRebuild(*STDOUT, \%profileinfo, $profile, $profilegroup, $profilepath, 0, 0); syslog('err', "Rebuilded profile '$profile' in group '$profilegroup': $status "); } if ( $profileinfo{'locked'} ) {