From 093ac03207bd4468fa89dc7438936b245a92cbe5 Mon Sep 17 00:00:00 2001 From: djk Date: Mon, 15 Feb 1999 13:17:32 +0000 Subject: [PATCH] fixed A & K to be right way round allow ~ in message lines started message forwarding table code --- cmd/load/badmsg.pl | 3 +-- cmd/load/forward.pl | 7 +++++++ cmd/show/wwv.pl | 2 +- {data => msg}/badmsg.pl.issue | 0 msg/forward.pl.issue | 0 perl/DXMsg.pm | 35 +++++++++++++++++++++++++++++------ perl/DXProt.pm | 2 +- perl/DXProtout.pm | 10 ++-------- 8 files changed, 41 insertions(+), 18 deletions(-) create mode 100644 cmd/load/forward.pl rename {data => msg}/badmsg.pl.issue (100%) create mode 100644 msg/forward.pl.issue diff --git a/cmd/load/badmsg.pl b/cmd/load/badmsg.pl index 44689b54..5a5cbc38 100644 --- a/cmd/load/badmsg.pl +++ b/cmd/load/badmsg.pl @@ -2,7 +2,6 @@ my $self = shift; my @out; return (0, $self->msg('e5')) if $self->priv < 9; -do "$main::data/badmsg.pl" if -e "$main::data/badmsg.pl"; -push @out, $@ if $@; +push @out, (DXMsg::load_badmsg()); @out = ($self->msg('ok')) unless @out; return (1, @out); diff --git a/cmd/load/forward.pl b/cmd/load/forward.pl new file mode 100644 index 00000000..27fa48da --- /dev/null +++ b/cmd/load/forward.pl @@ -0,0 +1,7 @@ +# reload the message forward file +my $self = shift; +my @out; +return (0, $self->msg('e5')) if $self->priv < 9; +push @out, (DXMsg::load_forward()); +@out = ($self->msg('ok')) unless @out; +return (1, @out); diff --git a/cmd/show/wwv.pl b/cmd/show/wwv.pl index e0109726..07a0259a 100644 --- a/cmd/show/wwv.pl +++ b/cmd/show/wwv.pl @@ -28,7 +28,7 @@ while ($f = shift @f) { # next field $to = 10 if !$to; -push @out, "Date Hour SFI K A Forecast Logger"; +push @out, "Date Hour SFI A K Forecast Logger"; my @in = Geomag::search($from, $to, $main::systime); for (@in) { push @out, Geomag::print_item($_); diff --git a/data/badmsg.pl.issue b/msg/badmsg.pl.issue similarity index 100% rename from data/badmsg.pl.issue rename to msg/badmsg.pl.issue diff --git a/msg/forward.pl.issue b/msg/forward.pl.issue new file mode 100644 index 00000000..e69de29b diff --git a/perl/DXMsg.pm b/perl/DXMsg.pm index 76048eee..39bd3065 100644 --- a/perl/DXMsg.pm +++ b/perl/DXMsg.pm @@ -30,7 +30,7 @@ use Carp; use strict; use vars qw(%work @msg $msgdir %valid %busy $maxage $last_clean - @badmsg $badmsgfn); + @badmsg $badmsgfn $forwardfn @forward); %work = (); # outstanding jobs @msg = (); # messages we have @@ -38,8 +38,10 @@ use vars qw(%work @msg $msgdir %valid %busy $maxage $last_clean $msgdir = "$main::root/msg"; # directory contain the msgs $maxage = 30 * 86400; # the maximum age that a message shall live for if not marked $last_clean = 0; # last time we did a clean +@forward = (); # msg forward table -$badmsgfn = "$main::data/badmsg.pl"; # list of TO address we wont store +$badmsgfn = "$msgdir/badmsg.pl"; # list of TO address we wont store +$forwardfn = "$msgdir/forward.pl"; # the forwarding table %valid = ( fromnode => '9,From Node', @@ -104,7 +106,7 @@ sub workclean sub process { my ($self, $line) = @_; - my @f = split /[\^\~]/, $line; + my @f = split /\^/, $line; my ($pcno) = $f[0] =~ /^PC(\d\d)/; # just get the number SWITCH: { @@ -634,8 +636,11 @@ sub init my @dir; my $ref; - do "$badmsgfn" if -e "$badmsgfn"; - print "$@\n" if $@; + # load various control files + my @in = load_badmsg(); + print "@in\n" if @in; + @in = load_forward(); + print "@in\n" if @in; # read in the directory opendir($dir, $msgdir) or confess "can't open $msgdir $!"; @@ -644,7 +649,7 @@ sub init @msg = (); for (sort @dir) { - next unless /^m\d+/o; + next unless /^m\d+$/o; $ref = read_msg_header("$msgdir/$_"); next unless $ref; @@ -793,6 +798,24 @@ sub dir $ref->to, $ref->from, cldate($ref->t), ztime($ref->t), $ref->subject; } +# load the forward table +sub load_forward +{ + my @out; + do "$forwardfn" if -e "$forwardfn"; + push @out, $@ if $@; + return @out; +} + +# load the bad message table +sub load_badmsg +{ + my @out; + do "$badmsgfn" if -e "$badmsgfn"; + push @out, $@ if $@; + return @out; +} + no strict; sub AUTOLOAD { diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 23310b8d..5797c63f 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -425,7 +425,7 @@ sub normal return if $pcno == 27; # broadcast to the eager users - broadcast_users("WWV de $field[7] <$field[2]>: SFI=$sfi, K=$k, A=$i, $field[6]", 'wwv', $wwv ); + broadcast_users("WWV de $field[7] <$field[2]>: SFI=$sfi, A=$k, K=$i, $field[6]", 'wwv', $wwv ); last SWITCH; } diff --git a/perl/DXProtout.pm b/perl/DXProtout.pm index 7afb0e92..c49f953a 100644 --- a/perl/DXProtout.pm +++ b/perl/DXProtout.pm @@ -186,7 +186,7 @@ sub pc29 { my ($fromnode, $tonode, $stream, $text) = @_; $text =~ s/\^/:/og; # remove ^ - $text =~ s/\~/S/og; +# $text =~ s/\~/S/og; return "PC29^$fromnode^$tonode^$stream^$text^~"; } @@ -235,13 +235,7 @@ sub pc35 # send all the DX clusters I reckon are connected sub pc38 { - my @list = DXNode->get_all(); - my $list; - my @nodes; - - foreach $list (@list) { - push @nodes, $list->call; - } + my @nodes = map { ($_->dxchan && $_->dxchan->isolate) ? () : $_->call } DXNode->get_all(); return "PC38^" . join(',', @nodes) . "^~"; } -- 2.43.0