From f11237c455a6440b5158206dcb2d03850ed1b7b0 Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Sat, 9 May 2020 22:23:45 +0100 Subject: [PATCH] wwv & wcy progress, random lockouts Improve the look of WWV and WCY progress messages. Stop the random lockouts of connected nodes with ephemeral user records. --- Changes | 2 ++ perl/DXMsg.pm | 8 ++++++-- perl/DXProtHandle.pm | 8 +++++--- perl/Messages | 2 +- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Changes b/Changes index b3e8d4fd..e88b9091 100644 --- a/Changes +++ b/Changes @@ -2,6 +2,8 @@ 1. Show the route by which this PCxx came in progress debugging reports. In some other words: the spot/wwv/wcy/ann message arrived first from this connection. +2. Improve progress WWV & WCY messages. +3. Stop random node isolations (at least in one place) 08May20======================================================================= 1. Tidy up routing table 2. Add new argument to show/version (ALL or list of regexes) that allow you diff --git a/perl/DXMsg.pm b/perl/DXMsg.pm index e6662b59..38d89bbc 100644 --- a/perl/DXMsg.pm +++ b/perl/DXMsg.pm @@ -786,6 +786,8 @@ sub queue_msg if ($dxchan) { if ($dxchan->is_node) { next if $clref->call eq $main::mycall; # i.e. it lives here + next if $dxchan->is_arcluster; # don't even go there, idiot people send the header in the wrong order and won't/can't fix it + next if $dxchan->isolate; # there is no mechanism for sending messages to isolated nodes. $ref->start_msg($dxchan) if !get_busy($dxchan->call) && $dxchan->state eq 'normal'; } } else { @@ -804,8 +806,10 @@ sub queue_msg next unless $call; next if $call eq $main::mycall; next if ref $ref->{gotit} && grep $_ eq $call, @{$ref->{gotit}}; - next unless $ref->forward_it($call); # check the forwarding file - next if $ref->{tonode}; # ignore it if it already being processed + next unless $ref->forward_it($call); # check the forwarding file + next if $ref->{tonode}; # ignore it if it already being processed + next if $dxchan->is_arcluster; # don't even go there, idiot people send the header in the wrong order and won't/can't fix it + next if $dxchan->isolate; # there is no mechanism for sending messages to isolated nodes. # if we are here we have a node that doesn't have this message if (!get_busy($call) && $dxchan->state eq 'normal') { diff --git a/perl/DXProtHandle.pm b/perl/DXProtHandle.pm index e268d0f9..57a83cc5 100644 --- a/perl/DXProtHandle.pm +++ b/perl/DXProtHandle.pm @@ -663,13 +663,15 @@ sub check_add_node # add this station to the user database, if required (don't remove SSID from nodes) my $user = DXUser::get_current($call); - if (!$user) { + unless ($user) { $user = DXUser->new($call); $user->priv(1); # I have relented and defaulted nodes $user->lockout(1); $user->homenode($call); $user->node($call); $user->sort('A'); + $user->lastin($main::systime); # this make it last longer than just this invocation + $user->put; # just to make sure it gets written away!!! } return $user; } @@ -973,7 +975,7 @@ sub handle_23 # note this only takes the first one it gets Geomag::update($d, $pc->[2], $sfi, $k, $i, @$pc[6..8], $r); - dbg("WWV: $d $pc->[2], sfi:$sfi k:$k info:$i $pc->[6] $pc->[7] $pc->[8] $r route: $origin") if isdbg('progress'); + dbg("WWV: <$pc->[2]>, sfi=$sfi k=$k info=$i '$pc->[6]' $pc->[7]\@$pc->[8] $r route: $origin") if isdbg('progress'); if (defined &Local::wwv) { my $rep; @@ -1377,7 +1379,7 @@ sub handle_73 } my $wcy = WCY::update($d, @$pc[2..12]); - dbg("WCY: " . join(', ', @$pc[2..12]) . " route: $origin") if isdbg('progress'); + dbg("WCY: <$pc->[2]> K=$pc->[5] expK=$pc->[6] A=$pc->[4] R=$pc->[7] SFI=$pc->[3] SA=$pc->[8] GMF=$pc->[9] Au=$pc->[10] $pc->[11]\@$pc->[12] route: $origin") if isdbg('progress'); if (defined &Local::wcy) { my $rep; diff --git a/perl/Messages b/perl/Messages index 2b271b0c..d1e731af 100644 --- a/perl/Messages +++ b/perl/Messages @@ -353,7 +353,7 @@ package DXM; wpc9xu => 'PC9X for $_[0] disabled', wwv1 => '$_[0] is missing or out of range', wwv2 => 'Duplicate WWV', - wwv3 => 'Date Hour SFI A K Forecast Logger', + wwv3 => 'Date Hour SFI A K Forecast Logger', wwvs => 'WWV enabled for $_[0]', wwvu => 'WWV disabled $_[0]', wxs => 'WX enabled for $_[0]', -- 2.34.1