fixed A & K to be right way round
authordjk <djk>
Mon, 15 Feb 1999 13:17:32 +0000 (13:17 +0000)
committerdjk <djk>
Mon, 15 Feb 1999 13:17:32 +0000 (13:17 +0000)
allow ~ in message lines
started message forwarding table code

cmd/load/badmsg.pl
cmd/load/forward.pl [new file with mode: 0644]
cmd/show/wwv.pl
data/badmsg.pl.issue [deleted file]
msg/badmsg.pl.issue [new file with mode: 0644]
msg/forward.pl.issue [new file with mode: 0644]
perl/DXMsg.pm
perl/DXProt.pm
perl/DXProtout.pm

index 44689b543424ab840cbd7cfb595f3298b60d84db..5a5cbc3829dab56fc3ed05e30b05216f2bb299f4 100644 (file)
@@ -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 (file)
index 0000000..27fa48d
--- /dev/null
@@ -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); 
index e010972604ce738f5e05ebe74fdfbf07b353eb64..07a0259a34af5939b10a3d223f1fd763a4e31bba 100644 (file)
@@ -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/data/badmsg.pl.issue
deleted file mode 100644 (file)
index 7a1b3fe..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# the list of TO addresses for messages that we won't store having
-# received them (bear in mind that we must receive them fully before
-# we can bin them)
-#
-
-package DXMsg;
-
-@badmsg = qw
-(
- SALE
- FORSALE
- WANTED
-);
diff --git a/msg/badmsg.pl.issue b/msg/badmsg.pl.issue
new file mode 100644 (file)
index 0000000..7a1b3fe
--- /dev/null
@@ -0,0 +1,14 @@
+#
+# the list of TO addresses for messages that we won't store having
+# received them (bear in mind that we must receive them fully before
+# we can bin them)
+#
+
+package DXMsg;
+
+@badmsg = qw
+(
+ SALE
+ FORSALE
+ WANTED
+);
diff --git a/msg/forward.pl.issue b/msg/forward.pl.issue
new file mode 100644 (file)
index 0000000..e69de29
index 76048eee9c30873fb7b07848c9a6be950fc3324f..39bd3065ab57e0fd3e4af2550d41107c6877b842 100644 (file)
@@ -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
 {
index 23310b8d772f3ad5655a9ee4741d6aa8745128e3..5797c63ff8d3c9d0e801eb49ce082053083cdafd 100644 (file)
@@ -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;
                }
                
index 7afb0e92af1241c134908c04348bbfb857a581d7..c49f953aec4b1327ef889ae28aeeec6c1b10a69c 100644 (file)
@@ -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) . "^~";
 }