Merge branch 'test' into mojo
[spider.git] / Changes
diff --git a/Changes b/Changes
index ce05214ad2eea99e5c9140180ad30bd2281a7055..4161d2ac4a6d34e7b39e04abced9ec2ffcb4900f 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,208 @@
+20Apr24======================================================================
+1. Try to "fix" Spot deduping (again). This is probably Work In Progress...
+2. A new(er) band.pl gratefully received from Andy G4PIQ.
+13Apr24======================================================================
+1. Fix small issue with perl 5.20 (and possibly earlier) compilation.
+27Mar24======================================================================
+1. Fix dupe PC[16]1 (spot) coming in "too fast" for dupe filter to work. 
+
+   Probably. 
+25Mar24======================================================================
+1. Make talk work. Note: this now works as the mojo branch originally
+   expected - which means that it may (and likely will) flood route talks 
+   where the callsign that you want to talk to does not have a route to
+   both the callsign and any nodes that it may be connected to. 
+22Mar24======================================================================
+1. Change the processing of trailing callsigns slightly so that /1 /2 etc are
+   retained, but the /P /M /A /MM etc are removed.
+20Mar24======================================================================
+1. Has it really been so long since the last update?
+2. Since forever, mainly because filtering was done very early on in
+   DXSpider's development, clearing a filter needed a disconnect/reconnect
+   cycle from the user/node to activate. Now clearing or changing a filter is
+   immediately effective in the current session. 
+
+   Also things like: 'rej/spot user_default on vhf' will immediately apply 
+   to all users that do not already have some other filter in place. Users
+   can override this by setting a filter. 
+   
+   The Filter system will now show the actual token that a faulty command
+   dislikes.  
+3. Disable the "is there a route to callsign X3XXX" test in talk. This is a 
+   legacy test that should not apply at the user level. The resulting PC93 is
+   flood routed unless there is a genuine direct route to that callsign.  
+25Mar23=======================================================================
+1. Changed the default of X and Y (in item 2 below) to 27 and 20 respectively.
+24Mar23=======================================================================
+1. Restore perl regex version of is_ipaddr. This *should* allow windows 
+   updates to work again.
+2. Added cmd entry rate limiting. If a user sends X commmands in Y secs then
+   they are disconnected without notice. The defaults are X 
+   ($DXCommandmode::maxcmdcount) = 16 and Y ($DXCommandmode::cmdinterval) = 9.
+   
+   These can be changed by the startup script. 
+
+   These default values are set generously deliberately to allow certain user 
+   programs to get with the program and reduce the number of cmds that they
+   issue on connection down to something reasonable. For instance, I cannot
+   see why things like name, qth, lat/long/QRA (amongst several other sticky
+   user attributes that only need to be entered once) are sent on every login.
+
+   These default values WILL reduce over time. 
+23Mar23=======================================================================
+1. Fix DXCIDR brokenness introduced recently, speeded up DXCIDR::sort, allow
+   sh/badip 2a05:dfc7:402a::1 45.134.225.96 159.69.38.160 to test individual
+   IP address as well as show the default (of every badip).
+2. Speed up and be more strict with input for is_ipaddr(<ip address>). 
+22Mar23=======================================================================
+1. Fix warning in DXUtil::difft.
+21Mar23=======================================================================
+1. Fix DXUtil is_ipaddr function which was accidentally included in previous
+   commit.
+2. Do not extract IP addresses to create routing info as default.
+17Mar23=======================================================================
+1. Try to nail down incoming PC92s that attempt to change the type of $myalias
+   or $mycall. 
+2. Do some housekeeping with the startup and finish debugging to make the 
+   order of messaging more logical. Also disable some messaging caused by 
+   other errors/circumstances causing various object handles disappearing.  
+3. Make sure that $mycall and $myalias are upper case (and moan about it if
+   they aren't.
+10Mar23=======================================================================
+1. I am aware that there are windows nodes out there on mojo (brave, impetuous 
+   that you are) and wget is not an easy option to download badip files. So, 
+   through the power of mojo I give you the new 'download' command. As it 
+   stands at the moment, it will download a file from a webserver and place
+   it in /spider/local_data. If it downloads successfully, it will overwrite
+   any file with that name in /spider/local_data. Needless to say this is a 
+   sysop only command. 
+
+24 * * * * run_cmd('download http://www.dxspider.net/download/badip.torexit')
+24 * * * * run_cmd('download http://www.dxspider.net/download/badip.torrelay')
+24 * * * * run_cmd('download http://www.dxspider.net/download/badip.global')
+25 * * * * run_cmd('load/badip')
+
+   would be an obvious use. But it can also be used to download spot, USDB 
+   and other data as well. If you do use it then you will still need to 
+   do a spawn_cmd in crontab for the conversion programs, but that too is 
+   going to change.
+07Mar23=======================================================================
+1. Fix odd (and old) regression dx command (line ending 59+++) '++' being the 
+   culprit.
+2. Allow multiple commands on one line when separated with the 2 character 
+   string '\n' (sigh). 
+3. Move a few init things about on startup so that more parameters are 
+   scriptable. 
+4. Put some debug comments before loading various caches (that might take a
+   longgggg time) and then tell people how long each cache load took. This
+   should reduce the worry that something is "wrong" when there is a delay
+   (such as searching for announces). 
+06Mar23=======================================================================
+1. Fix filter error reporting, including incrementing concurrent error count 
+   if there are actually any detected parse errors.
+2. Fix warnings on difft.
+3. Add the origin of any incoming SP if it is emailed to the recipient.
+4. Oops I accidently restored one path of the node being disconnected that I
+   fixed below (because of changes to filtering). 
+04Mar23=======================================================================
+1. Fixed regression caused by too many command errors in (startup) script
+   files. This is caused by much stricter checking of commands entered both 
+   by users AND scripts. If there more concurrent errors ie. greater than
+   $DXChannel::maxerrors (default 10) then that user will be disconnected.
+
+   Unfortunately this could include the $mycall (node) channel if there were
+   too many command users in the startup script. The example I looked at had
+   a load of HTML pasted into it.  
+   
+   For various reasons the only manifestation of this problem was that pings
+   no longer worked. 
+
+   This has been fixed. I am grateful to Fulvio HB9DHG for letting me break
+   his node for an hour or so until I worked out what was going on.  
+03Mar23=======================================================================
+1. Fix DXDebug::DXDebug not found errors in rarely used functions. This is 
+   also an interaction with differing versions of Mojolicious. Clearly this 
+   has never happened to me (sigh).
+2. Allow non-privileged users to use ping (no arguments) and get 'PONG nn' 
+   where nn is an incrementing counter or if there is an argument it will 
+   return 'PONG <argument>' - all in UPPER CASE. See help ping for more
+   details. 
+02Mar23=======================================================================
+1. Fix sh/dx/30 problem. I.e. allow old style version of sh/dx 30.  
+01Mar23=======================================================================
+1. Revert PC92 A D and PC92 C record flags back to defaults.
+2. Deal with users that send gibberish.
+3. Fix show/425 (default) URL.
+4. Improve Spot deduping.
+28Feb23=======================================================================
+1. Default ip addresses ON in PC92 C records, disable PC92 A D record output.
+2. Add CTY-3308 prefixes.
+3. Fix gen_usdb_data.pl (add missing use DXUtil), update current location of
+   official FCC databases.
+4. Remove the duplicate IP addresses across exits and relays from badip lists
+   during generation by create_master_badip_files.pl.
+14Feb23=======================================================================
+1. Attempt to be more M$ Windows compatible. This basically is to do with the
+   unfortunate fact that most of the Windows perl cannot do, or simulate 
+   spawning (running another process in parallel) and/or Mojolicious cannot
+   handle coping with one or more versions of these simulations. 
+
+   I don't have a windows perl available to me at moment so I can only
+   simulate running under windows by setting a variable.
+
+   You need to know that running any version of DXSpider on Windows will do
+   all long running commands in line. Much as the 'master' branch does. So
+   running large nodes on Windows boxes with versions of perl that do not
+   support running spawned processes continues to be contra-indicated. Much 
+   as it has ALWAYS been. 
+04Feb23=======================================================================
+1. Fixed sh/log so that callsigns beginning with a digit (or several) are 
+   printed rather than being ignored.
+   This affects: show/ann, chat, log, rcmd and wx
+03Feb23=======================================================================
+1. Fix is_ipaddr to accept trailing '::'  on IPV6 addresses.
+2. Fix and extend the TEST program 'showdx' so that it now works on the mojo
+   branch. Type 'showxd -?' for more information or read the source. This is 
+   NOT a user program, but is will accept most sh/dx expressions. 
+3. Fix create_master_badip_files.pl so that it does not emit IP addresses
+   that the system is_ipaddr() function fails.
+01Feb23=======================================================================
+1. Harden DXCIDR (badip stuff) against format errors in downloaded badip files
+   downloaded using wget from the crontab. If these problems persist PLEASE 
+   TELL me and send me examples of the errors that end up in the badip files.
+30Jan23=======================================================================
+1. Add ip addresses to outgoing PC93 messages
+2. Get rid of (some of?) the uninitialised warnings 
+3. Add the ability to set the (time) locale to UTC or LOCALTIME by adding 
+   the string LOCALE = UTC or LOCALE = LOCAL(TIME)? to your local crontab
+   
+   NOTE: this will affect ALL timings in both the system as well as your
+   local crontabs. Changing the LOCALE will make no difference to the system
+   crontab other than using localtime rather than UTC. Which is fine by me. 
+
+   You can see what crontab is doing and which LOCALE is in use by doing a
+   'set/debug cron' in a console and running a 'watchdbg cron' in another 
+   shell.
+25Jan23=======================================================================
+1. Add a switch to enable the routing of generated PC92 A/D records and also
+   prevent the rebroadcast of incoming ones.
+
+   set/var $DXProt::pc92_ad_enable 0 
+
+   to disable PC92 A/D records. 
+2. Add a switch to enable the addition of IP addresses to PC92 C records.
+
+   set/var $DXProt::pc92c_ipaddr_enable 1
+
+   to enable the addition of IP addresses to outgoing PC92 C records.
+
+   ## These two features are experimental, but will become the default if
+   ## some other changes and these are successful
+24Jan23=======================================================================
+1. Optimise the PC11->PC61 promotion code, improve readability of the 
+   debugging when 'set/debug pc11' is active.
+2. Remove spurious '$' character at the end of Listeners.pm (thanks Kin).
+3, Fix show/ik3qar command
 20Jan23=======================================================================
 1. Add the variable @main::localhost_names to allow other IP addresses to
    be treated in the same way as localhost in item 1 on 19Jan23 below. NOTE
    You do NOT need to fiddle with this unless you specifically have more
    than just the normal definitions of localhost. So for 'normal' nodes with
    one external interface, you DO NOT NEED TO DO ANY OF THIS. 
+2. Added CTY-3304 prefix data
+3. Fix Bad IP address system so that one can carry on as normal without
+   Net::CIDR::Lite (or libnet-cidr-lite-perl on debian based systems)
 19Jan23=======================================================================
 1. Introduce aliasing for localhost in DX Spots and outgoing PC92 A records
    on login. There are two variables which can be set with the alias to use: