+14Jan23=======================================================================
+1. Fixed route PC11 promotions so that a new PC61 is actually generated and
+ also sent instead of the original PC11 (to PC61 capable nodes).
+13Jan23=======================================================================
+1. Periodically store Routing tables and, if they are young enough (def: 3hrs)
+ autotically restore them on restart of the node. This will short circuit
+ the need to rebuild the routing tables from scratch on every restart -
+ which is normally for something like software update.
+2. Fix pc11 debugging stats with the correct figures. Sigh... Also move some
+ of the totals to a different place.
+3. Add show/spotstats command which gives the current spot statistics shown
+ during pc11 debugging (which means you don't need to set/deb pc11 unless
+ you really want that extra noise).
+12Jan23=======================================================================
+1. Regularise 'set/debug pc11' output to track all the routes through PC11 and
+ PC61 processing and statistics.
+11Jan23=======================================================================
+1. Improve (?) the PC11 -> PC61 upgrading process that delays incoming PC11s
+ for a very short time in the hope that a PC61 will come in to be used
+ instead. It will also upgrade a PC11 if we have an uptodate IP address
+ that has come in from the routing system PC92s. do a 'set/debug pc11' to
+ see it in action.
+2. I have chosen a definitive list of TOR exits and relays which can be
+ downloaded from http://www.dxspider.net/download/badip.torexit,
+ http://www.dxspider.net/download/badip.torrelay and finally, for those IP
+ addresses that are deemed to be 'bad':
+ http://www.dxspider.net/download/badip.global. I have added the following
+ lines to my /spider/local_cmd/crontab:
+
+24 * * * * spawn('cd /spider/local_data; wget -qN http://www.dxspider.net/download/badip.torexit')
+24 * * * * spawn('cd /spider/local_data; wget -qN http://www.dxspider.net/download/badip.torrelay')
+24 * * * * spawn('cd /spider/local_data; wget -qN http://www.dxspider.net/download/badip.global')
+25 * * * * run_cmd('load/badip')
+
+ The tor files are downloaded from https://lists.fissionrelays.net/tor/ at
+ 15 minutes past every hour, please would you use some other minute than
+ 23 or 24 to get your own local copies.
+
+ A 'set/debug badip' will show you what is being blocked.
+3. Fix set/badip so that it appends new IP addresses correctly.
+10Jan23=======================================================================
+1. Add baddx on incoming callsign in RBN.
+2. Search for all /spider/local_data/badip.* files to allow more control on
+ which IP addresses are detected. e.g. badip.torexit, badip.torrelay as well
+ as baddx.local. The suffixes, apart from .local (created by set/badip) are
+ completely arbitrary. You can use whichever suffix name you like. This is
+ a more useful arrangement for the ever increasing sources of "bad ip
+ addresses" that we need to deter.
+
+ NOTE: all badip.<suffix> are read only EXCEPT badip.local (which can be
+ altered in real time by the sysop using set/badip <ip address> ...).
+ If one uses periodic crontab jobs to update any other badip.<suffix>
+ files from web resources then don't forget to 'load/badip' afterwards.
+3. Add a /spider/data/baddx.issue file which can be copied to (or used as a
+ basis to create) /spider/local_data/baddx
+09Jan23=======================================================================
+1. Finish implemention of DXCIDR ip address filtering. This works on both
+ logins (treated the same as locked out - i.e. just disconnected) and also
+ with PC61s where these sentences are just dropped. Also attempt to prevent
+ any *following* PC11s with the same data getting through.
+
+ YOU WILL NEED either 'cpanm Net::CIDR::Lite' or debian/ubuntu based distros
+ 'apt install libnet-cidr-lite-perl'. RedHat based systems will have similar
+ packages available.
+
+2. Recognise PC18s coming from CC Clusters more nicely.
+04Jan23=======================================================================
+1. Fillout DXCIDR, attach checks in PC61 and logins. Login that fail will
+ simply disconnect, like locked out callsigns
+2. Fix qrz.com URL in stock Internet.pm.
+3. Fix DXHash issues (baddx, badnode, badspotter etc)
+30Dec22=======================================================================
+1. Add more BadWords (regex) checks.
+01Dec22=======================================================================
+1. Re-add some debugging to see which incoming PC protcol sentences are
+ being dumped because of any bad content (words or calls) if debugging
+ option 'nologchan' is set.
+2. All debugging for badwords has the word 'badword' in it. So that one can
+ do a 'grepdbg -1 badword' and one should see who said it and all of what
+ they said. Watchdbg will also work with this.
+3. My latest recommended additions to the badword list includes:
+ RU STOP SPOT DISGRACE CRM CRIM CRUD SUBHUMAN FASCIST DEGENERATE CATTLE CNT
+23Nov22=======================================================================
+1. The BadWord system has been rewritten. This change is pretty radical and
+ needs to be used with care as a word that is entered will be reduced to the
+ minimum sized string needed to match that word.
+
+ This is effective a sysop command changeable version of the file badw_regex
+ but in a much more sysop friendly form. The (un)set/badword <word>...
+ commands now update the /spider/local_data/badword.new file in real time
+ without having to mess about with editing files and running load/badword.
+ load/badword still works, but you should now never need it.
+19Nov22=======================================================================
+1. "Fix" Badword detection in spots and announces etc.
+ NOTE: setting $DXCommandmode::maxbadcount to 0 (default 3) will disable
+ autologout on swearing. But any (detected) swearing will be logged.
+ User generated swearing will not be propagated, not will incoming
+ protocol.
+2. Fix is_ipaddr so that it accepts more (most?) valid IPV6 addresses that
+ actual real IP addresses that might appear as endpoints.
+3. Add CTY-3237 prefixes.
+06Jun22=======================================================================
+1. Fix show/wcy so that it works even if no wcy broadcasts have been received
+ this month.
+01Jun22=======================================================================
+1. Fix show/(v)hfstats commands.
+2. Add CTY-3221 Prefixes.
+07Feb22=======================================================================
+1. (re)add set/seeme and show/seeme commands which don't appear to have
+ "taken".
+03Feb22=======================================================================
+1. Improve/add the help text for grepdbg and watchdbg.
+31Jan22=======================================================================
+1. Set $RBN::respottime to 3 minutes. NOTE change of name from
+ $RBN::minspottime.
+2. Allow callsigns connected to a node with an SSID to get SEEME RBN spots
+ for their base callsigns. So G1TLH-2, G1TLH-7 will get **SEEME** RBN spots
+ if G1TLH is spotted on the RBN system - even is are both connected to the
+ node and G1TLH is not. Each call is unique and each callsign (variation)
+ must have done a set/seeme + set/skimmer. .
+29Jan22=======================================================================
+1. Implement RBN set/seeme which displays any passing RBN spots for your
+ callsign in "raw" format.
+28Jan22=======================================================================
+1. Add Capabilities Line to logged in users.
+2. Make absolutely sure that all DB_Files are closed correctly.
+3. Introduce (un)set/debug rbnchan to control the visualisation of raw RBN
+ input lines.
+25Jan22=======================================================================
+1. Fixed grepdbg so that it does what -help says it does.
+24Jan22=======================================================================
+1. Change Local::pcprot() calling conventions to be the same as the rest of
+ software (see any 'sub handle_nn' function in DXProtHandle.pm.
+2. Corrected some interpolations in Messages.
+3. Tried to make users file deletes and updates more stable.
+22Jan22=======================================================================
+1. Refine spot display to retain the ':' and also reduce the likelyhood of
+ of misalignment by using the available space in the 39 characters more
+ intelligently. This is WIP.
+21Jan22=======================================================================
+1. Fix version tracking in PC92
+2. Bring the major parts of master and mojo together to make maintenance a
+ bit less challenging. This does add anything extra to mojo, but it's still
+ quite a bit of work.
+18Jan22=======================================================================
+1. fix (un)set/registered.
+09Jan22=======================================================================
+1. Add the New Year CTY-3201 prefix data.
+08Jan22=======================================================================
+1. I don't think there are any more warnings...
+06Jan22=======================================================================
+1. Fix the last of any frequent warnings caused by yesterday's modifications.
+05Jan22=======================================================================
+1. Mark nodes that send PC92 K records as spider. These will include VE7CC
+ nodes. NOTE: there appear to be user records marked as user or other sorts
+ of node, which (now) are actually spider (compatible) nodes and will be
+ marked accordingly.
+2. Adjust nodes currently marked as spider nodes, but are sending versions
+ not in the spider range of versions on PC92 A records as AK1A.
+3. Try to undo some damage where users have been autocreated with similar
+ attributes as nodes (locked out with privilege set to 1). This will
+ slowly fix this problem over time, but see item 4 for a 'big bang'
+ approach.
+4. It has come to my attention that there are a large number of users (of
+ all sorts) that have incompatible SSIDs. See 03Jan22/4 for details.
+
+ These are now being scrubbed out of the users file and also will present
+ as their normalised selves. If a -0* SSID is encountered then, if the
+ normalised version of that call is not present, it will be renamed to
+ that normalised call. If the normalised version of that user record is
+ already present, the un-normalised user record (-0*) will be removed.
+5. Make export_users do a batch clean (as in 3. above) and also get rid of
+ (default) 12+ year old unaccessed user records and (default) 2+ year old
+ "empty" records (with no qra/latlog/qth or handle).
+
+ NOTE: if you do an manual export_users (as opposed to the automatic one
+ done once a week), do not be alarmed by the number of old (i.e. more than
+ 12 years old) callsigns that it will get rid of. In my case it was about
+ ~2/5th of the users file. Still left me with over 100,000 "active" users.
+
+ In you are a bit twitchy about this, the code will copy the current
+ user_json and user_json.ooooo to user_json.keep and user_json.backstop
+ respectively. These files will never be overwritten unless you remove one
+ or both, when they will be regenerated on the next export_user.
+04Jan22=======================================================================
+1. Fix issue in the RBN (and probably other places) with callsigns that
+ contain trailing / in callsigns like: OH0K/6, K2PO/7 etc.
+2. Regard strange callsigns like DR4W-HB (seen in skimmer spots) as invalid.
+ This *should be* something like HB9/DR4W or (spit) DR4W/HB9.
+3. Fix the (probably) spurious locking out of users that are unknown to this
+ node, that come in from other nodes. These create new user records which
+ where then automatically locked.
+03Jan22=======================================================================
+1. Allow overrides (on modern versions of perl) with things in DXVars.pm, such
+ $clusterport. This is really only of use for people trying to run more than
+ one instance of DXSpider on the same machine.
+2. Fix who command to make RBN connections as RBN and not USER.
+3. Prevent other nodes claiming that $myalias or $mycall is a different type
+ (user or node) from changing our route table and thence the user type.
+4. Normalise callsigns of incoming connections to G1TST if G1TST-0 or G1TST-00
+ amd G1TST-2 if G1TST-02. There are 800+ instances of callsigns with extra
+ 0 characters in the SSID in my users file. Allow SSIDs up to 99.