From 65bf111b2d360cf15aa470020872d593f21e3740 Mon Sep 17 00:00:00 2001 From: minima Date: Wed, 26 Jul 2000 14:45:30 +0000 Subject: [PATCH] 12. added an 'auto rcmd for/oper ' for people I can see on the cluster that issue spots and for whom I have no qra info (no more than once a month). 13. Despace spot texts properly again for deduping purposes. --- Changes | 4 ++++ perl/DXProt.pm | 23 ++++++++++++++++++++++- perl/DXUser.pm | 3 ++- perl/DXUtil.pm | 3 ++- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/Changes b/Changes index 0d7988b5..3fd953cf 100644 --- a/Changes +++ b/Changes @@ -15,6 +15,10 @@ on DX announcements 10. Removed export_user.pl (no longer needed) 11. made import_users.pl accept a non related input filename and always update the current user file. +12. added an 'auto rcmd for/oper ' for people I can see on the +cluster that issue spots and for whom I have no qra info (no more than once +a month). +13. Despace spot texts properly again for deduping purposes. 25Jul00======================================================================= 1. ignore \n in ax25 mode for C client. 2. remove extra space at the end of a DX spot announce when no grid square diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 532322d0..7a2ca910 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -255,6 +255,26 @@ sub normal $user->put; } } + + # send a remote command to a distant cluster if it is visible and there is no + # qra locator and we havn't done it for a month. + + unless ($user->qra) { + my $node; + my $to = $user->homenode; + my $last = $user->lastoper || 0; + if ($main::systime > $last + $DXUser::lastoperinterval && $to && ($node = DXCluster->get_exact($to)) ) { + my $cmd = "forward/opernam $spot[4]"; + # send the rcmd but we aren't interested in the replies... + if ($node && $node->dxchan && $node->dxchan->is_clx) { + route(undef, $to, pc84($main::mycall, $to, $main::mycall, $cmd)); + } else { + route(undef, $to, pc34($main::mycall, $to, $cmd)); + } + $user->lastoper($main::systime); + $user->put; + } + } } # local processing @@ -669,7 +689,8 @@ sub normal $user->lat($lat); $user->long($long); my $qra = $user->qra || DXBearing::lltoqra($lat, $long); - $qra = DXBearing::lltoqra($lat, $long) unless DXBearing::is_qra($qra); + $qra = DXBearing::lltoqra($lat, $long) unless $qra && DXBearing::is_qra($qra); + $user->qra($qra) if $qra ne $user->qra; } elsif ($field[2] == 4) { $user->homenode($field[3]); } diff --git a/perl/DXUser.pm b/perl/DXUser.pm index 2bd14034..6b1db816 100644 --- a/perl/DXUser.pm +++ b/perl/DXUser.pm @@ -19,11 +19,12 @@ use IO::File; use DXDebug; use strict; -use vars qw(%u $dbm $filename %valid); +use vars qw(%u $dbm $filename %valid $lastoperinterval); %u = (); $dbm = undef; $filename = undef; +$lastoperinterval = 30*24*60*60; # hash of valid elements and a simple prompt %valid = ( diff --git a/perl/DXUtil.pm b/perl/DXUtil.pm index aad46965..9264d505 100644 --- a/perl/DXUtil.pm +++ b/perl/DXUtil.pm @@ -284,7 +284,8 @@ sub writefilestr sub unpad { my $s = shift; - $s =~ s/^\s+|\s+$//; + $s =~ s/\s+$//; + $s =~ s/^\s+//; return $s; } -- 2.34.1