summaryrefslogtreecommitdiffstats
path: root/contrib/ntp/scripts/stats.ulrich.patches
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ntp/scripts/stats.ulrich.patches')
-rw-r--r--contrib/ntp/scripts/stats.ulrich.patches1003
1 files changed, 0 insertions, 1003 deletions
diff --git a/contrib/ntp/scripts/stats.ulrich.patches b/contrib/ntp/scripts/stats.ulrich.patches
deleted file mode 100644
index fe642f6..0000000
--- a/contrib/ntp/scripts/stats.ulrich.patches
+++ /dev/null
@@ -1,1003 +0,0 @@
-
-Received: from huey2.ee.udel.edu by mail.eecis.udel.edu id aa25207;
- 10 Dec 1997 10:39 EST
-Received: from copland.udel.edu by huey.udel.edu id aa16958;
- 10 Dec 1997 10:39 EST
-Received: from rrzs2.rz.uni-regensburg.de (rrzs2.rz.uni-regensburg.de [132.199.1.2]) by copland.udel.edu (8.8.5/8.7.3) with ESMTP id KAA21293 for <mills@udel.edu>; Wed, 10 Dec 1997 10:39:12 -0500 (EST)
-Received: from ngate.ngate.uni-regensburg.de (ngate.rz.uni-regensburg.de [132.199.3.13])
- by rrzs2.rz.uni-regensburg.de (8.8.5/8.8.5) with SMTP id QAA19974
- for <mills@udel.edu>; Wed, 10 Dec 1997 16:38:42 +0100 (MET)
-Received: from rkdvmks1.ngate.uni-regensburg.de by ngate.ngate.uni-regensburg.de; Wed, 10 Dec 97 16:39 MET
-Received: from rkdvmks1.ngate.uni-regensburg.de by kgate.ngate.uni-regensburg.de; Wed, 10 Dec 97 15:38 GMT
-Received: from RKDVMKS1/SpoolDir by rkdvmks1.ngate.uni-regensburg.de (Mercury 1.32);
- 10 Dec 97 16:38:34 +0100
-Received: from SpoolDir by RKDVMKS1 (Mercury 1.32); 10 Dec 97 16:38:06 +0100
-From: Ulrich Windl <ulrich.windl@rz.uni-regensburg.de>
-Organization: Universitaet Regensburg, Klinikum
-To: mills@udel.edu
-Date: Wed, 10 Dec 1997 16:38:04 +0100
-MIME-Version: 1.0
-Content-Type: text/plain; charset=US-ASCII
-Content-transfer-encoding: 7BIT
-Subject: Big patch to scripts/monitoring
-Priority: normal
-X-mailer: Pegasus Mail for Windows (v2.53/R1)
-Message-ID: <103AB9D209F5@rkdvmks1.ngate.uni-regensburg.de>
-
-Dave, there's another big patch against scripts/monitoring. The Perl
-programs in there are rather old. As they are quite nice thogh, I
-decided to update them for the latest version of Perl, namely 5.004.
-
-I'll include the description of changes and the patch.
-
-Ulrich
-
-Here is a description of changes made in ntploopwatch:
-
-Corrected most warnings that PERL 5.004 might emit. Corrected signal
-handlers to make them work again. Corrected scaling (at least I
-think). Supported case when output is sent to file or printer and
-there is no X11 available. Fixed number of month in xlabels of the
-plot.
-
-Added the ability to specify printer for GNUplot other that
-PostScript. Use hostname if $STATHOST is not given in configuration
-file. Corrected verbosity level for some messages. Added ability to
-specify a non-standard print command.
-
-Perl 5.004_04 does no longer ignore ``-w--*-perl-*-''. Made some
-cosmetic changes and added a timescale of 10 minutes.
-
-(Other programs are functionally unchanged. lr.pl is a PERL module now.)
-
-
-Index: README
-===================================================================
-RCS file: /home/windl/NTP/mon-REP/monitoring/README,v
-retrieving revision 1.1.1.1
-retrieving revision 1.2
-diff -u -r1.1.1.1 -r1.2
---- README 1993/08/24 19:29:34 1.1.1.1
-+++ README 1997/10/23 17:51:37 1.2
-@@ -1,14 +1,14 @@
- This directory contains support for monitoring the local clock of xntp daemons.
-
--WARNING: The scripts and routines contained in this directory are bete realease!
-- Do not depend on their correct operation. They are, however, in regular
-- use at University of Erlangen-Nuernberg. No severe problems are known
-- for this code.
-+WARNING: The scripts and routines contained in this directory are beta
-+ release! Do not depend on their correct operation. They are,
-+ however, in regular use at University of Erlangen-Nuernberg.
-+ No severe problems are known for this code.
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- PLEASE THINK TWICE BEFORE STARTING MONITORING REMOTE XNTP DEAMONS !!!!
- MONITORING MAY INCREASE THE LOAD OF THE DEAMON MONITORED AND MAY
--INCREASE THE NETWORK LOAD SIGNIFICANTLY
-+INCREASE THE NETWORK LOAD SIGNIFICANTLY
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-
-@@ -23,8 +23,8 @@
- It sends a set_trap request to each server given and dumps the
- trap messages received. It handles refresh of set_trap.
- Currently it handles only NTP V2, however the NTP V3 servers
-- also accept v2 requests. It will not interpret v3 system and peer
-- stati correctly.
-+ also accept v2 requests. It will not interpret v3 system and
-+ peer stati correctly.
-
- usage:
- ntptrap [-n] [-p <port>] [-l <debug-output>] servers...
-@@ -72,7 +72,9 @@
-
- if a timeout occurs the next sample is tried after delay/2 seconds
-
-- The script will terminate after MAX_FAIL (currently 60) consecutive errors.
-+ The script will terminate after MAX_FAIL (currently 60)
-+ consecutive errors.
-+
- Errors are counted for:
- - error on send call
- - error on select call
-@@ -114,10 +116,10 @@
- command line values would be replaced by settings from the config file.
-
- printer: specify printer to print plot
-- BSD print systems semantics apply; if printer is omitted
-- the name "ps" is used; plots are prepared using
-- PostScript, thus the printer should best accept
-- postscript input
-+ BSD print systems semantics apply; if printer
-+ is omitted the name "ps" is used; plots are
-+ prepared using PostScript, thus the printer
-+ should best accept postscript input
-
- For the following see also the comments in loopwatch.config.SAMPLE
-
-@@ -139,8 +141,10 @@
- within display range
-
- timelocal.pl:
-- used during conversion of ISO_DATE_TIME values specified in loopwatch
-- config files to unix epoch values (seconds since 1970-01-01_00:00_00 UTC)
-+
-+ used during conversion of ISO_DATE_TIME values specified in
-+ loopwatch config files to unix epoch values (seconds since
-+ 1970-01-01_00:00_00 UTC)
-
- A version of this file is distributed with perl-4.x, however,
- it has a bug related to dates crossing 1970, causing endless loops..
-Index: lr.pl
-===================================================================
-RCS file: /home/windl/NTP/mon-REP/monitoring/lr.pl,v
-retrieving revision 1.1.1.1
-retrieving revision 1.4
-diff -u -r1.1.1.1 -r1.4
---- lr.pl 1993/08/24 19:29:33 1.1.1.1
-+++ lr.pl 1997/10/23 17:51:37 1.4
-@@ -9,9 +9,14 @@
- ;# Frank Kardel, Rainer Pruy
- ;# Friedrich-Alexander Universitaet Erlangen-Nuernberg
- ;#
-+;# Copyright (c) 1997 by
-+;# Ulrich Windl <Ulrich.Windl@rz.uni-regensburg.de>
-+;# (Converted to a PERL 5.004 package)
- ;#
- ;#############################################################
-
-+package lr;
-+
- ##
- ## y = A + Bx
- ##
-@@ -23,123 +28,124 @@
- ##
- ## interface
- ##
--*lr_init = *lr'lr_init; #';# &lr_init(tag); initialize data set for tag
--*lr_sample = *lr'lr_sample; #';# &lr_sample(x,y,tag); enter sample
--*lr_Y = *lr'lr_Y; #';# &lr_Y(x,tag); compute y for given x
--*lr_X = *lr'lr_X; #';# &lr_X(y,tag); compute x for given y
--*lr_r = *lr'lr_r; #';# &lr_r(tag); regression coeffizient
--*lr_cov = *lr'lr_cov; #';# &lr_cov(tag); covariance
--*lr_A = *lr'lr_A; #';# &lr_A(tag);
--*lr_B = *lr'lr_B; #';# &lr_B(tag);
--*lr_sigma = *lr'lr_sigma; #';# &lr_sigma(tag); standard deviation
--*lr_mean = *lr'lr_mean; #';# &lr_mean(tag);
-+;# init(tag); initialize data set for tag
-+;# sample(x, y, tag); enter sample
-+;# Y(x, tag); compute y for given x
-+;# X(y, tag); compute x for given y
-+;# r(tag); regression coefficient
-+;# cov(tag); covariance
-+;# A(tag);
-+;# B(tag);
-+;# sigma(tag); standard deviation
-+;# mean(tag);
- #########################
-
--package lr;
--
--sub tagify
--{
-- local($tag) = @_;
-- if (defined($tag))
-- {
-- *lr_n = eval "*${tag}_n";
-- *lr_sx = eval "*${tag}_sx";
-- *lr_sx2 = eval "*${tag}_sx2";
-- *lr_sxy = eval "*${tag}_sxy";
-- *lr_sy = eval "*${tag}_sy";
-- *lr_sy2 = eval "*${tag}_sy2";
-- }
--}
--
--sub lr_init
-+sub init
- {
-- &tagify($_[$[]) if defined($_[$[]);
-+ my $self = shift;
-
-- $lr_n = 0;
-- $lr_sx = 0.0;
-- $lr_sx2 = 0.0;
-- $lr_sxy = 0.0;
-- $lr_sy = 0.0;
-- $lr_sy2 = 0.0;
-+ $self->{n} = 0;
-+ $self->{sx} = 0.0;
-+ $self->{sx2} = 0.0;
-+ $self->{sxy} = 0.0;
-+ $self->{sy} = 0.0;
-+ $self->{sy2} = 0.0;
- }
-
--sub lr_sample
-+sub sample($$$)
- {
-- local($_x, $_y) = @_;
--
-- &tagify($_[$[+2]) if defined($_[$[+2]);
-+ my $self = shift;
-+ my($_x, $_y) = @_;
-
-- $lr_n++;
-- $lr_sx += $_x;
-- $lr_sy += $_y;
-- $lr_sxy += $_x * $_y;
-- $lr_sx2 += $_x**2;
-- $lr_sy2 += $_y**2;
-+ ++($self->{n});
-+ $self->{sx} += $_x;
-+ $self->{sy} += $_y;
-+ $self->{sxy} += $_x * $_y;
-+ $self->{sx2} += $_x**2;
-+ $self->{sy2} += $_y**2;
- }
-
--sub lr_B
-+sub B($)
- {
-- &tagify($_[$[]) if defined($_[$[]);
-+ my $self = shift;
-
-- return 1 unless ($lr_n * $lr_sx2 - $lr_sx**2);
-- return ($lr_n * $lr_sxy - $lr_sx * $lr_sy) / ($lr_n * $lr_sx2 - $lr_sx**2);
-+ return 1 unless ($self->{n} * $self->{sx2} - $self->{sx}**2);
-+ return ($self->{n} * $self->{sxy} - $self->{sx} * $self->{sy})
-+ / ($self->{n} * $self->{sx2} - $self->{sx}**2);
- }
-
--sub lr_A
-+sub A($)
- {
-- &tagify($_[$[]) if defined($_[$[]);
-+ my $self = shift;
-
-- return ($lr_sy - &lr_B * $lr_sx) / $lr_n;
-+ return ($self->{sy} - B($self) * $self->{sx}) / $self->{n};
- }
-
--sub lr_Y
-+sub Y($$)
- {
-- &tagify($_[$[]) if defined($_[$[]);
-+ my $self = shift;
-
-- return &lr_A + &lr_B * $_[$[];
-+ return A($self) + B($self) * $_[$[];
- }
-
--sub lr_X
-+sub X($$)
- {
-- &tagify($_[$[]) if defined($_[$[]);
-+ my $self = shift;
-
-- return ($_[$[] - &lr_A) / &lr_B;
-+ return ($_[$[] - A($self)) / B($self);
- }
-
--sub lr_r
-+sub r($)
- {
-- &tagify($_[$[]) if defined($_[$[]);
-+ my $self = shift;
-
-- local($s) = ($lr_n * $lr_sx2 - $lr_sx**2) * ($lr_n * $lr_sy2 - $lr_sy**2);
-+ my $s = ($self->{n} * $self->{sx2} - $self->{sx}**2)
-+ * ($self->{n} * $self->{sy2} - $self->{sy}**2);
-
- return 1 unless $s;
-
-- return ($lr_n * $lr_sxy - $lr_sx * $lr_sy) / sqrt($s);
-+ return ($self->{n} * $self->{sxy} - $self->{sx} * $self->{sy}) / sqrt($s);
- }
-
--sub lr_cov
-+sub cov($)
- {
-- &tagify($_[$[]) if defined($_[$[]);
-+ my $self = shift;
-
-- return ($lr_sxy - $lr_sx * $lr_sy / $lr_n) / ($lr_n - 1);
-+ return ($self->{sxy} - $self->{sx} * $self->{sy} / $self->{n})
-+ / ($self->{n} - 1);
- }
-
--sub lr_sigma
-+sub sigma($)
- {
-- &tagify($_[$[]) if defined($_[$[]);
-+ my $self = shift;
-
-- return 0 if $lr_n <= 1;
-- return sqrt(($lr_sy2 - ($lr_sy * $lr_sy) / $lr_n) / ($lr_n));
-+ return 0 if $self->{n} <= 1;
-+ return sqrt(($self->{sy2} - ($self->{sy} * $self->{sy}) / $self->{n})
-+ / ($self->{n}));
- }
-
--sub lr_mean
-+sub mean($)
- {
-- &tagify($_[$[]) if defined($_[$[]);
-+ my $self = shift;
-
-- return 0 if $lr_n <= 0;
-- return $lr_sy / $lr_n;
-+ return 0 if $self->{n} <= 0;
-+ return $self->{sy} / $self->{n};
- }
-
--&lr_init();
-+sub new
-+{
-+ my $class = shift;
-+ my $self = {
-+ (n => undef,
-+ sx => undef,
-+ sx2 => undef,
-+ sxy => undef,
-+ sy => undef,
-+ sy2 => undef)
-+ };
-+ bless $self, $class;
-+ init($self);
-+ return $self;
-+}
-
- 1;
-Index: ntp.pl
-===================================================================
-RCS file: /home/windl/NTP/mon-REP/monitoring/ntp.pl,v
-retrieving revision 1.1.1.1
-retrieving revision 1.3
-diff -u -r1.1.1.1 -r1.3
---- ntp.pl 1993/08/24 19:29:34 1.1.1.1
-+++ ntp.pl 1997/10/23 18:19:41 1.3
-@@ -1,4 +1,4 @@
--#!/local/bin/perl
-+#!/usr/bin/perl -w
- ;#
- ;# ntp.pl,v 3.1 1993/07/06 01:09:09 jbj Exp
- ;#
-@@ -43,7 +43,7 @@
- ;# N key
- ;# N2 checksum
-
--;# first bye of packet
-+;# first byte of packet
- sub pkt_LI { return ($_[$[] >> 6) & 0x3; }
- sub pkt_VN { return ($_[$[] >> 3) & 0x7; }
- sub pkt_MODE { return ($_[$[] ) & 0x7; }
-@@ -223,6 +223,7 @@
- {
- &getval(&psw_PSel($_[$[]),*PeerSelection);
- }
-+
- sub PeerEvent
- {
- &getval(&psw_PCode($_[$[]),*PeerEvent);
-@@ -394,14 +395,14 @@
- $lastseen = 1 if !&pkt_M($r_e_m_op);
- if (!defined(%FRAGS))
- {
-- (&pkt_M($r_e_m_op) ? " more" : "")."\n";
-+ print((&pkt_M($r_e_m_op) ? " more" : "")."\n");
- $FRAGS{$offset} = $data;
- ;# save other info
- @FRAGS = ($status,$associd,&pkt_OP($r_e_m_op),$seq,$auth_keyid,$r_e_m_op);
- }
- else
- {
-- (&pkt_M($r_e_m_op) ? " more" : "")."\n";
-+ print((&pkt_M($r_e_m_op) ? " more" : "")."\n");
- ;# add frag to previous - combine on the fly
- if (defined($FRAGS{$offset}))
- {
-Index: ntploopstat
-===================================================================
-RCS file: /home/windl/NTP/mon-REP/monitoring/ntploopstat,v
-retrieving revision 1.1.1.1
-retrieving revision 1.3
-diff -u -r1.1.1.1 -r1.3
---- ntploopstat 1993/08/24 19:29:32 1.1.1.1
-+++ ntploopstat 1997/11/23 19:07:12 1.3
-@@ -1,4 +1,5 @@
--#!/local/bin/perl -w--*-perl-*-
-+#!/usr/bin/perl -w
-+# --*-perl-*-
- ;#
- ;# ntploopstat,v 3.1 1993/07/06 01:09:11 jbj Exp
- ;#
-@@ -22,7 +23,7 @@
- ;# (Should have implemented &gettimeofday()..)
- ;#
-
--$0 =~ s!^.*/([^/]+)$!\1!; # beautify script name
-+$0 =~ s!^.*/([^/]+)$!$1!; # beautify script name
-
- $ntpserver = 'localhost'; # default host to poll
- $delay = 60; # default sampling rate
-Index: ntploopwatch
-===================================================================
-RCS file: /home/windl/NTP/mon-REP/monitoring/ntploopwatch,v
-retrieving revision 1.1.1.1
-retrieving revision 1.14
-diff -u -r1.1.1.1 -r1.14
---- ntploopwatch 1993/10/22 14:28:18 1.1.1.1
-+++ ntploopwatch 1997/12/07 17:06:36 1.14
-@@ -1,4 +1,5 @@
--#!/local/bin/perl -w--*-perl-*-
-+#!/usr/bin/perl -w
-+#--*-perl-*-
- ;#
- ;# ntploopwatch,v 3.1 1993/07/06 01:09:13 jbj Exp
- ;#
-@@ -9,12 +10,17 @@
- ;# Copyright (c) 1992
- ;# Rainer Pruy Friedrich-Alexander Universitaet Erlangen-Nuernberg
- ;#
-+;# Copyright (c) 1997
-+;# Ulrich Windl <Ulrich.Windl@rz.uni-regensburg.de>
-+;# (Corrections for Perl5 and other fixes)
- ;#
- ;#############################################################
--$0 =~ s!^.*/([^/]+)$!\1!;
-+$0 =~ s!^.*/([^/]+)$!$1!;
- $F = ' ' x length($0);
- $|=1;
-
-+use 5.004; # require 5.004
-+
- $ENV{'SHELL'} = '/bin/sh'; # use bourne shell
-
- undef($config);
-@@ -23,17 +29,17 @@
- undef($samples);
- undef($StartTime);
- undef($EndTime);
--($a,$b) if 0; # keep -w happy
-+
- $usage = <<"E-O-P";
- usage:
-- to watch statistics permanently:
-+ to watch statistics periodically:
- $0 [-v[<level>]] [-c <config-file>] [-d <working-dir>]
- $F [-h <hostname>]
-
- to get a single print out specify also
-- $F -P[<printer>] [-s<samples>]
-- $F [-S <start-time>] [-E <end-time>]
-- $F [-Y <MaxOffs>] [-y <MinOffs>]
-+ $F -P[[<term_type:>]<printer>]
-+ $F [-s<samples>] [-S <start-time>] [-E <end-time>]
-+ $F [-Y <MaxOffs>] [-y <MinOffs>]
-
- If You like long option names, You can use:
- -help
-@@ -41,21 +47,28 @@
- -d +directory
- -h +host
- -v +verbose[=<level>]
-- -P +printer[=<printer>]
-+ -P +printer[=[<term_type>:]<printer>[:<print_cmd>]]
- -s +samples[=<samples>]
- -S +starttime
- -E +endtime
- -Y +maxy
- -y +miny
-
-+If <printer> is prefixed with a <term_type> and a colon, the <term_type>
-+given is used as terminal fpr gnuplot.
- If <printer> contains a '/' (slash character) output is directed to
- a file of this name instead of delivered to a printer.
-+If suffix :<print_cmd> is given, the suffix is used as the print command,
-+and <printer> is ignored. If blanks are needed inside <term_type> or
-+<print_cmd>, just use underscores instead.
- E-O-P
-
- ;# add directory to look for lr.pl and timelocal.pl (in front of current list)
- unshift(@INC,"/src/NTP/v3/xntp/monitoring");
-
- require "lr.pl"; # linear regresion routines
-+my $lr_offs = new lr;
-+my $lr_freq = new lr;
-
- $MJD_1970 = 40587; # from ntp.h (V3)
- $RecordSize = 48; # usually a line fits into 42 bytes
-@@ -171,16 +184,20 @@
-
- ;# configuration file
- $config = "loopwatch.config" unless defined($config);
--($STATHOST = $config) =~ s!.*loopwatch\.config.([^/\.]*)$!\1!
-+($STATHOST = $config) =~ s!.*loopwatch\.config.([^/\.]+)$!$1!
- unless defined($STATHOST);
--($STATTAG = $STATHOST) =~ s/^([^\.\*\s]+)\..*$/\1/;
-+if ($STATHOST eq $config) {
-+ require "hostname.pl";
-+ $STATHOST = hostname();
-+}
-+($STATTAG = $STATHOST) =~ s/^([^\.\*\s]+)\..*$/$1/;
-
- $srcprefix =~ s/\$STATHOST/$STATHOST/g;
-
- ;# plot command
--@plotcmd=("gnuplot",
-- '-title', "Ntp loop filter statistics $STATHOST",
-- '-name', "NtpLoopWatch_$STATTAG");
-+@plotcmd=("gnuplot");
-+push(@plotcmd, '-title', "NTP loop filter statistics for $STATHOST",
-+ '-name', "NtpLoopWatch_$STATTAG") unless $PrintIt;
- $tmpfile = "/tmp/ntpstat.$$";
-
- ;# other variables
-@@ -211,9 +228,8 @@
- $?>>8,$? & 0xff)) if $?;
- exit(1) if $? && defined($Plotpid) && $pid == $Plotpid;
- }
--&sigchld if 0;
--$SIG{'CHLD'} = "sigchld";
--$SIG{'CLD'} = "sigchld";
-+$SIG{'CHLD'} = \&sigchld;
-+$SIG{'CLD'} = \&sigchld;
-
- sub abort
- {
-@@ -221,8 +237,7 @@
- defined($Plotpid) && kill('TERM',$Plotpid);
- die("$0: received signal SIG$_[$[] - exiting\n");
- }
--&abort if 0; # make -w happy - &abort IS used
--$SIG{'INT'} = $SIG{'HUP'} = $SIG{'QUIT'} = $SIG{'TERM'} = $SIG{'PIPE'} = "abort";
-+$SIG{'INT'} = $SIG{'HUP'} = $SIG{'QUIT'} = $SIG{'TERM'} = $SIG{'PIPE'} = \&abort;
-
- ;#
- sub abs
-@@ -248,7 +263,7 @@
- open(STDOUT,">&STDERR") ||
- die("$0: failed to redirect STDOUT of plot command: $!\n");
-
-- print STDOUT "plot command running as $$\n";
-+ print STDOUT "plot command has PID $$\n";
-
- exec @plotcmd;
- die("$0: failed to exec (@plotcmd): $!\n");
-@@ -275,128 +290,83 @@
- s/^([^\#]*[^\#\s]?)\s*\#.*$//;
- next if /^\s*$/;
-
-- s/^\s*([^=\s]*)\s*=\s*(.*\S)\s*$/\1=\2/;
-+ s/^\s*([^=\s]*)\s*=\s*(.*\S)\s*$/$1=$2/;
-
-- ($c,$v) = split(/=/,$_,2);
-+ ($c,$v) = ($1, $2);
- print "processing \"$c=$v\"\n" if $verbose > 3;
-- ($c eq "delay") && ($delay = $v,1) && next;
-- ($c eq 'samples') && (!defined($PrintIt) || !defined($samples)) &&
-- ($samples = $v,1) && next;
-- ($c eq 'srcprefix') && (($srcprefix=$v)=~s/\$STATHOST/$STATHOST/g,1)
-- && next;
-- ($c eq 'showoffs') &&
-- ($showoffs = ($v eq 'yes' || $v eq 'y' || $v != 0),1) && next;
-- ($c eq 'showfreq') &&
-- ($showfreq = ($v eq 'yes' || $v eq 'y' || $v != 0),1) && next;
-- ($c eq 'showcmpl') &&
-- ($showcmpl = ($v eq 'yes' || $v eq 'y' || $v != 0),1) && next;
-- ($c eq 'showoreg') &&
-- ($showoreg = ($v eq 'yes' || $v eq 'y' || $v != 0),1) && next;
-- ($c eq 'showfreg') &&
-- ($showfreg = ($v eq 'yes' || $v eq 'y' || $v != 0),1) && next;
--
-- ($c eq 'exit') && (unlink($tmpfile),die("$0: exit by config request\n"));
--
-- ($c eq 'freqbase' ||
-- $c eq 'cmplscale') &&
-- do {
-- if (! defined($v) || $v eq "" || $v eq 'dynamic')
-- {
-- eval "undef(\$$c);";
-- }
-- else
-- {
-- eval "\$$c = \$v;";
-- }
-- next;
-- };
-- ($c eq 'timebase') &&
-- do {
-- if (! defined($v) || $v eq "" || $v eq "dynamic")
-- {
-- undef($timebase);
-- }
-- else
-- {
-- $timebase=&date_time_spec2seconds($v);
-- }
-- };
-- ($c eq 'EndTime') &&
-- do {
-- next if defined($EndTime) && defined($PrintIt);
-- if (! defined($v) || $v eq "" || $v eq "none")
-- {
-- undef($EndTime);
-- }
-- else
-- {
-- $EndTime=&date_time_spec2seconds($v);
-- }
-- };
-- ($c eq 'StartTime') &&
-- do {
-- next if defined($StartTime) && defined($PrintIt);
-- if (! defined($v) || $v eq "" || $v eq "none")
-- {
-- undef($StartTime);
-- }
-- else
-- {
-- $StartTime=&date_time_spec2seconds($v);
-- }
-- };
--
-- ($c eq 'MaxY') &&
-- do {
-- next if defined($MaxY) && defined($PrintIt);
-- if (! defined($v) || $v eq "" || $v eq "none")
-- {
-- undef($MaxY);
-- }
-- else
-- {
-- $MaxY=$v;
-- }
-- };
--
-- ($c eq 'MinY') &&
-- do {
-- next if defined($MinY) && defined($PrintIt);
-- if (! defined($v) || $v eq "" || $v eq "none")
-- {
-- undef($MinY);
-- }
-- else
-- {
-- $MinY=$v;
-- }
-- };
--
-- ($c eq 'deltaT') &&
-- do {
-- if (!defined($v) || $v eq "")
-- {
-- undef($deltaT);
-- }
-- else
-- {
-- $deltaT = $v;
-- }
-- next;
-- };
-- ($c eq 'verbose') && ! defined($PrintIt) &&
-- do {
-- if (!defined($v) || $v == 0)
-- {
-- $verbose = 0;
-- }
-- else
-- {
-- $verbose = $v;
-- }
-- next;
-- };
-- ;# otherwise: silently ignore unrecognized config line
-+ if ($c eq "delay") {
-+ $delay = $v;
-+ } elsif ($c eq 'samples') {
-+ $samples = $v if (!defined($PrintIt) || !defined($samples));
-+ } elsif ($c eq 'srcprefix') {
-+ ($srcprefix = $v) =~ s/\$STATHOST/$STATHOST/g;
-+ } elsif ($c eq 'showoffs') {
-+ $showoffs = ($v =~ /^yes$|^y$|^1$/);
-+ } elsif ($c eq 'showfreq') {
-+ $showfreq = ($v =~ /^yes$|^y$|^1$/);
-+ } elsif ($c eq 'showcmpl') {
-+ $showcmpl = ($v =~ /^yes$|^y$|^1$/);
-+ } elsif ($c eq 'showoreg') {
-+ $showoreg = ($v =~ /^yes$|^y$|^1$/);
-+ } elsif ($c eq 'showfreg') {
-+ $showfreg = ($v =~ /^yes$|^y$|^1$/);
-+ } elsif ($c eq 'exit') {
-+ unlink($tmpfile); die("$0: exit by config request\n");
-+ } elsif ($c eq 'freqbase' || $c eq 'cmplscale') {
-+ if (! defined($v) || $v eq "" || $v eq 'dynamic') {
-+ eval "undef(\$$c);";
-+ } else {
-+ eval "\$$c = \$v;";
-+ }
-+ } elsif ($c eq 'timebase') {
-+ if (! defined($v) || $v eq "" || $v eq "dynamic") {
-+ undef($timebase);
-+ } else {
-+ $timebase=&date_time_spec2seconds($v);
-+ }
-+ } elsif ($c eq 'EndTime') {
-+ next if defined($EndTime) && defined($PrintIt);
-+ if (! defined($v) || $v eq "" || $v eq "none") {
-+ undef($EndTime);
-+ } else {
-+ $EndTime=&date_time_spec2seconds($v);
-+ }
-+ } elsif ($c eq 'StartTime') {
-+ next if defined($StartTime) && defined($PrintIt);
-+ if (! defined($v) || $v eq "" || $v eq "none") {
-+ undef($StartTime);
-+ } else {
-+ $StartTime=&date_time_spec2seconds($v);
-+ }
-+ } elsif ($c eq 'MaxY') {
-+ next if defined($MaxY) && defined($PrintIt);
-+ if (! defined($v) || $v eq "" || $v eq "none") {
-+ undef($MaxY);
-+ } else {
-+ $MaxY=$v;
-+ }
-+ } elsif ($c eq 'MinY') {
-+ next if defined($MinY) && defined($PrintIt);
-+ if (! defined($v) || $v eq "" || $v eq "none") {
-+ undef($MinY);
-+ } else {
-+ $MinY=$v;
-+ }
-+ } elsif ($c eq 'deltaT') {
-+ if (!defined($v) || $v eq "") {
-+ undef($deltaT);
-+ } else {
-+ $deltaT = $v;
-+ }
-+ } elsif ($c eq 'verbose' && ! defined($PrintIt)) {
-+ if (!defined($v) || $v == 0) {
-+ $verbose = 0;
-+ } else {
-+ $verbose = $v;
-+ }
-+ } else {
-+ ;# otherwise: silently ignore unrecognized config line
-+ }
- }
- close(CF);
- ;# set show defaults when nothing selected
-@@ -413,16 +383,16 @@
- print " showcmpl\t= $showcmpl\n";
- print " showoreg\t= $showoreg\n";
- print " showfreg\t= $showfreg\n";
-- printf " timebase\t= %s",defined($timebase)?&ctime($timebase):"dynamic\n";
-- printf " freqbase\t= %s\n",defined($freqbase) ?"$freqbase":"dynamic";
-- printf " cmplscale\t= %s\n",defined($cmplscale)?"$cmplscale":"dynamic";
-- printf " StartTime\t= %s",defined($StartTime)?&ctime($StartTime):"none\n";
-- printf " EndTime\t= %s", defined($EndTime) ? &ctime($EndTime):"none\n";
-- printf " MaxY\t= %s",defined($MaxY)? $MaxY :"none\n";
-- printf " MinY\t= %s",defined($MinY)? $MinY :"none\n";
-+ printf " timebase\t= %s", defined($timebase) ? &ctime($timebase) : "dynamic\n";
-+ printf " freqbase\t= %s\n", defined($freqbase) ? "$freqbase" : "dynamic";
-+ printf " cmplscale\t= %s\n", defined($cmplscale) ? "$cmplscale" : "dynamic";
-+ printf " StartTime\t= %s", defined($StartTime) ? &ctime($StartTime) : "none\n";
-+ printf " EndTime\t= %s", defined($EndTime) ? &ctime($EndTime):"none\n";
-+ printf " MaxY\t= %s", defined($MaxY) ? $MaxY : "none\n";
-+ printf " MinY\t= %s", defined($MinY) ? $MinY : "none\n";
- print " verbose\t= $verbose\n";
- }
--print "configuration file read\n" if $verbose > 2;
-+ print "configuration file read\n" if $verbose > 2;
- }
-
- sub make_doplot
-@@ -443,10 +413,9 @@
- ;# number of integral seconds to get at least 12 tic marks on x axis
- $t = int(($maxtime - $mintime) / 12 + 0.5);
- $t = 1 unless $t; # prevent $t to be zero
-- foreach $i (30,
-- 60,5*60,15*60,30*60,
-- 60*60,2*60*60,6*60*60,12*60*60,
-- 24*60*60,48*60*60)
-+ foreach $i (30, 60,
-+ 5*60, 10*60, 15*60, 30*60, 60*60,
-+ 2*60*60, 6*60*60, 12*60*60, 24*60*60, 48*60*60)
- {
- last if $t < $i;
- $t = $t - ($t % $i);
-@@ -458,31 +427,30 @@
- $i <= $maxtime + $t;
- $i += $t, $c=",")
- {
-+ my ($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime($i);
-+
- $s .= $c;
- ((int($i / $t) % 2) &&
- ($s .= sprintf("'' %lf",($i - $LastTimeBase)/3600))) ||
- (($t <= 60) &&
- ($s .= sprintf("'%d:%02d:%02d' %lf",
-- (localtime($i))[$[+2,$[+1,$[+0],
-- ($i - $LastTimeBase)/3600)))
-+ $hour, $min, $sec, ($i - $LastTimeBase) / 3600)))
- || (($t <= 2*60*60) &&
- ($s .= sprintf("'%d:%02d' %lf",
-- (localtime($i))[$[+2,$[+1],
-- ($i - $LastTimeBase)/3600)))
-+ $hour, $min, ($i - $LastTimeBase) / 3600)))
- || (($t <= 12*60*60) &&
- ($s .= sprintf("'%s %d:00' %lf",
-- $Day[(localtime($i))[$[+6]],
-- (localtime($i))[$[+2],
-- ($i - $LastTimeBase)/3600)))
-+ $Day[$wday], $hour,
-+ ($i - $LastTimeBase) / 3600)))
- || ($s .= sprintf("'%d.%d-%d:00' %lf",
-- (localtime($i))[$[+3,$[+4,$[+2],
-- ($i - $LastTimeBase)/3600));
-+ $mday, $mon + 1, $hour,
-+ ($i - $LastTimeBase) / 3600));
- }
- $doplot .= "set xtics ($s)\n";
-
- chop($xts = &ctime($mintime));
- chop($xte = &ctime($maxtime));
-- $doplot .= "set xlabel 'Start: $xts -- Time Scale -- End: $xte'\n";
-+ $doplot .= "set xlabel 'Start: $xts -- Time Scale -- End: $xte'\n";
- $doplot .= "set yrange [" ;
- $doplot .= defined($MinY) ? sprintf("%lf", $MinY) : $miny;
- $doplot .= ':';
-@@ -518,22 +486,22 @@
- $c = ",");
- $showoreg && $showoffs &&
- ($doplot .= sprintf($regfmt, $c,
-- &lr_B('offs'),&lr_A('offs'),
-- "offset ",
-- &lr_B('offs'),
-- ((&lr_A('offs')) < 0 ? '-' : '+'),
-- &abs(&lr_A('offs')), &lr_r('offs'),
-+ $lr_offs->B(),$lr_offs->A(),
-+ "offset",
-+ $lr_offs->B(),
-+ (($lr_offs->A()) < 0 ? '-' : '+'),
-+ &abs($lr_offs->A()), $lr_offs->r(),
- "[ms]"),
- $c = ",");
- $showfreg && $showfreq &&
- ($doplot .= sprintf($regfmt, $c,
-- &lr_B('freq') * $FreqScale,
-- (&lr_A('freq') + $minfreq) * $FreqScale - $LastFreqBase,
-+ $lr_freq->B() * $FreqScale,
-+ ($lr_freq->A() + $minfreq) * $FreqScale - $LastFreqBase,
- "frequency",
-- &lr_B('freq') * $FreqScale,
-- ((&lr_A('freq') + $minfreq) * $FreqScale - $LastFreqBase) < 0 ? '-' : '+',
-- &abs((&lr_A('freq') + $minfreq) * $FreqScale - $LastFreqBase),
-- &lr_r('freq'),
-+ $lr_freq->B() * $FreqScale,
-+ (($lr_freq->A() + $minfreq) * $FreqScale - $LastFreqBase) < 0 ? '-' : '+',
-+ &abs(($lr_freq->A() + $minfreq) * $FreqScale - $LastFreqBase),
-+ $lr_freq->r(),
- "[${FreqScaleInv}ppm]"),
- $c = ",");
- $doplot .= "\n";
-@@ -583,7 +551,7 @@
- $#loffset = $[ - 1;
- $#filekey = $[ - 1;
- print "memory allocation ready\n" if $verbose > 2;
-- sleep(3) if $verbose > 1;
-+ sleep(3) if $verbose > 2;
-
- if (index($in,"/") < $[)
- {
-@@ -606,7 +574,6 @@
- ;# rescan directory on changes
- $Lsdir = $sdir;
- $Ltime = (stat($sdir))[$[+9];
-- </X{> if 0; # dummy line - calm down my formatter
- local(@newfiles) = < ${in}*[0-9] >;
- local($st_dev,$st_ino,$st_mtime,$st_size,$name,$key,$modified);
-
-@@ -626,7 +593,7 @@
- $F_key{$name} = $key;
- $modified++;
- }
-- if (!defined($F_name{$key}) || $F_name{$key} != $name)
-+ if (!defined($F_name{$key}) || $F_name{$key} ne $name)
- {
- $F_name{$key} = $name;
- $modified++;
-@@ -643,9 +610,9 @@
- }
- if ($modified)
- {
-- print "new data \"$name\" key: $key;\n" if $verbose > 1;
-+ print "new data \"$name\" key: $key;\n" if $verbose > 2;
- print " size: $st_size; mtime: $st_mtime;\n"
-- if $verbose > 1;
-+ if $verbose > 2;
- $F_last{$key} = $F_first{$key} = $st_mtime;
- $F_first{$key}--; # prevent zero divide later on
- ;# now compute derivated attributes
-@@ -692,7 +659,7 @@
- }
- close(IN);
- print(" first: ",$F_first{$key},
-- " last: ",$F_last{$key},"\n") if $verbose > 1;
-+ " last: ",$F_last{$key},"\n") if $verbose > 2;
- }
- }
- ;# now reclaim memory used for files no longer referenced ...
-@@ -739,7 +706,7 @@
- }
- ;# create list sorted by time
- @F_files = sort {$F_first{$a} <=> $F_first{$b}; } keys(%F_name);
-- if ($verbose > 1)
-+ if ($verbose > 2)
- {
- print "Resulting file list:\n";
- foreach (@F_files)
-@@ -797,7 +764,7 @@
- print "guess start according to StartTime ($StartTime)\n"
- if $verbose > 3;
-
-- if ($fpos[$[] eq 'start')
-+ if (defined $fpos[$[] && $fpos[$[] eq 'start')
- {
- if (grep($_ eq $fpos[$[+1],@f))
- {
-@@ -1001,9 +968,9 @@
- $t += $F[$[+1]; # add seconds + fraction
-
- ;# multiply offset by 1000 to get ms - try to avoid float op
-- (($F[$[+2] =~ s/(\d*)\.(\d{3})(\d*)/\1\2.\3/) &&
-+ (($F[$[+2] =~ s/(\d*)\.(\d{3})(\d*)/$1$2.$3/) &&
- $F[$[+2] =~ s/0+([\d\.])/($1 eq '.') ? '0.' : $1/e) # strip leading zeros
-- || $F[$[+2] *= 1000;
-+ || ($F[$[+2] *= 1000);
-
-
- ;# skip samples out of specified time range
-@@ -1036,8 +1003,8 @@
- print "input scanned ($l lines/",scalar(@time)," samples)\n"
- if $verbose > 1;
-
-- &lr_init('offs');
-- &lr_init('freq');
-+ $lr_offs->init();
-+ $lr_freq->init();
-
- if (@time)
- {
-@@ -1047,17 +1014,17 @@
- local($freqbase) unless defined($freqbase);
- local($cmplscale) unless defined($cmplscale);
-
-- undef($mintime,$maxtime,$minoffs,$maxoffs,
-- $minfreq,$maxfreq,$mincmpl,$maxcmpl,
-- $miny,$maxy);
-+ undef $mintime; undef $maxtime; undef $minoffs; undef $maxoffs;
-+ undef $minfreq; undef $maxfreq; undef $mincmpl; undef $maxcmpl;
-+ undef $miny; undef $maxy;
-
- print "computing ranges\n" if $verbose > 2;
-
- $LastCnt = @time;
-
- ;# @time is in ascending order (;-)
-- $mintime = @time[$[];
-- $maxtime = @time[$#time];
-+ $mintime = $time[$[];
-+ $maxtime = $time[$#time];
- unless (defined($timebase))
- {
- local($time,@X) = (time);
-@@ -1081,24 +1048,24 @@
- ;# (otherwise a (shift(@a1),shift(a2)) would do),
- ;# I dont like to make copies of these arrays as they may be huge
- $i = $[;
-- &lr_sample(($time[$i]-$timebase)/3600,$offs[$
-
OpenPOWER on IntegriCloud