+30Apr24======================================================================
+1. "Fix" PC92 and PC19 node user creation and modification such that non-
+ connected nodes or nodes that DON'T have sysop altered privilege and
+ lockout status are set to priv 1 and are locked out. This will also alter
+ historical mistakes and *may* bring the user file back into alignment with
+ current thinking. Just like the last couple of times this has been
+ attempted - hurrumph! Thanks to Luigi IK5ZUK for the headsup.
+
+ There have been extensive debug message changes that are now emitted and
+ can be tracked with: watchdbg 'user|update'
+29Apr24======================================================================
+1. New bands.pl produced with most of the work done by Andy G4PIQ and
+ Kin EA3CV.
+2. The RBN module will now take data directly from SkimmerServers. Thanks to
+ Frank DL2CC.
+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 must include ALL the normal localhost names + any other interface
+ names that you might want to include:
+
+ set/var @main::localhost_names qw(127.0.0.1 ::1 192.168.1.30)
+
+ using the qw() construction is easier than:
+
+ set/var @main::localhost_names ('127.0.0.1', '::1', '192.168.1.30')
+
+ but either will work. You can define as many IP addresses as you like and
+ they can be IPV4 or 6.
+
+ 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:
+ $main::localhost_alias_ipv4
+ $main::localhost_alias_ipv6
+ These can be set in the /spider/scripts/startup, but this is only
+ necessary if the node has more than one interface, or virtual hosts. If
+ there is ONLY ONE ipv4 and/or ipv6 IP address on the node machine then
+ these variables will be automatically populated on first use. But the SAFE
+ thing to do is to set them in the startup file.
+
+ THIS FEATURE IS EXPERIMENTAL...
+18Jan23=======================================================================
+1. Make sure than *every* channel has an IP address. Thank you (I think) Kin
+ for pointing out that PC92 A records were not going out with IP addresses.
+ I'm guessing that other things (like spots) had a similar problem.
+15Jan23=======================================================================
+1. Fix strange errors for carp on missing route_*_cache files on startup.
+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.
+02Jan22=======================================================================
+1. Fix dx bug introduced to handle dx by ip <ipaddr> for webclusters.
+2. Remove _add_thingy dbg message from general view.
+3. Increase sh/ann cache to 130 to cope with some client programs' profligate
+ need to fill their users' screens with needless erm... data.
+01Jan22=======================================================================
+1. Fixed missing ';' in spoof
+30Dec21=======================================================================
+1. Try to fix (nuke) tabs in comment field.
+28Dec21=======================================================================
+1. Fix issues with wwv & wcy updates into the cache.
+2. Add a simple sh/announce cache to stop spawning when used (especially) in
+ a script.
+27Dec21=======================================================================
+1. Fix "kwalitee control" issue in /spider/cmd/dx.pl.
+2. Make sh/wcy and sh/wwv cacheble for simple queries.
+3. Fix set/nodxxxxxx etc.
+22Dec21=======================================================================
+1. Add the possibility to do "sender verify" that spots (and later on, other
+ things like announce etc) are coming from spotters that exist on the node
+ that the PC11/61 says it does. At the moment, this is advisory as many
+ users seem to be on web clusters and many of them do not send PC61 and also
+ don't update the node's routing tables that normal node usage would do.
+2. Prioritise PC61 spots over PC11 spots wherever possible. Also promote PC11
+ spots to PC61 where the spotter's IP is known.
+3. Add a shell script "perlbrew-dxspider" that can be used for starting the
+ node when using perlbrew (i.e. more modern perls) on older distros such
+ as Centos 7/8.
+4. Allow to "dx by <spotter> ip <ip address> <qrg> <spot call> <comment>.
+ This is added as a convenience measure for webcluster authors while waiting
+ for the internal websocket interface (or because they cannot use that).
+ This can only be used by suitably privileged users.
+ This likely to be a temporary measure and will be immediately withdrawn if
+ there is any sign of abuse.
+11Dec21=======================================================================
+1. Removed dependency on perl Git package.
+2. Force code to change directory to $DXSPIDER_ROOT || '/spider'. Also force
+ git -C $root describe.
+3. Change git commands AGAIN to work on old perls (which mojo won't work on,
+ but it makes my life easier).
+4. Change version strings to include the perl version in use.
+10Dec21=======================================================================
+1. Fix the output of set/dxgrid, set/usstate and set/dxcq or set/dxitu to how
+ it was always supposed to be since 2003.
+09Dec21=======================================================================
+1. Moved isregistered to DXChannel for safety...
+08Dec21=======================================================================
+1. Get to the bottom of why ssid'd calls were using the base call's
+ credentials. This should now work as expected.
+06Dec21=======================================================================
+1. Improve console.pl scrolling. Split long lines (eg on announcements.
+04Dec21=======================================================================
+1. Fix illogicalities in USDB creations and make sure that O_CREAT on tie does
+ NOT encounter an existing file to barf about. Even though it shouldn't.
+ Thanks Howard WB3FFV.
+2. Fixed a typo in show/registered that prevents a list of callsigns being
+ searched for. Got rid of some over complex code. Thanks Fabrizio iZ0UIN.
+3. Fix long line wrapping in console.pl
+03Dec21=======================================================================
+1. Move motd and issue files to local_data if not already there.
+30Nov21=======================================================================
+1. Fix sh/dx with callsigns that have /p or VE/G1TLH in them.
+2. Add unset/ak1a, unset/arcluster aliases and some minimal help for UNSET/
+ SPIDER, NODE, ARCLUSTER, AKIA and also SET/USER.
+26Nov21=======================================================================
+1. *Really* change spot display format and sh/dx format "back the way they
+ were. But They won't stay that way for long!!!! There are four (yes, count
+ them) completely unused spaces at the end of the line!!!!
+25Nov21=======================================================================
+1. Restored spot format back to the way it was.
+2. Added CTY-3127 prefixes
+24Nov21=======================================================================
+1. Make /spider/perl/create_sysop.pl work on a base git cloned tree.
+2. Add /spider/local /spider/local_cmd /spider/local_data to git.
+3. Make user supplied console width (set/width) sticky.
+19Nov21=======================================================================
+1. Add the ability of console.pl to resize and have dx spots also resize so
+ that the comment field's size will increase accordingly. Sh/dx amd sh/mydx
+ also work similarly. If you make the console width smaller or wider then
+ spots already on the screen will not resize.
+2. For client programs that parse the output (why? use set/ve7cc to get more
+ easily machine parsed output), a new command "set/width <width>" is
+ available.
+18Nov21=======================================================================
+1. Add a dx spot cache which will store 2 days worth (configurable) of spots.
+ This is then used by the vast majority of simple sh/dx queries without
+ using a sub process. A simple sh/dx is any sh/dx that does not have an
+ "expression" such as "sh/dx g1tlh". So "sh/dx", "sh/dx 200", "sh/mydx" will
+ always run in the main program via the cache. Certain client programs (no
+ names, no pack drill) will notice the difference immediately. It's also a
+ bit snappier.
+2. set/badspotter or set/badnode will work for RBN input.
+3. RBN input with invalid QRGs will be dropped with a nice friendly message
+ rather than a scary exception message about multiplication thrown by one
+ of the libraries that I use.
+4. Added CTY-3126 prefixes.
+5. Silently ignore self spotting below 1240000Khz (change
+ $Spot::minselfspot to 0 to disable or some other freq in Khz). NOTE this
+ will appear as a spot to the spotter's feed, but will not be passed on.
+15Jul21=======================================================================
+1. Fix long standing bug in crontabs that commands with " rather than ' around
+ strings could cause those commands not to work.
+2. Add CTY 3117 prefixes.
+15Mar21=======================================================================
+1. Fix DXUtil::localdata so that it does actually prefer the latest version
+ of a file regardless of whether it is in /spider/data or /spider/localdata.
+2. Add CTY-3105 prefixes.
+05Mar21=======================================================================
+1. Fix DXCron::spawn_cmd so that more than one spawn_cmd can be active at a
+ time. This affects many nodes where lots of regular spawn_cmds happen at
+ a time and this prevented crucial things like 'start_connect' from working!
+2. Sort user lockout issues to cope with all likely scenarios - including
+ "phantom" SSID working.
+3. Fix "close_gracefully" error messages which are useless, but benign. These
+ happen (mainly) when outgoing connects timeout.
+24Feb21=======================================================================
+1. modify RBN timing arrangements
+
+ There are two new twiddle pots:
+
+ $limbotime (default 5*60 secs) which allows potential spots to
+ hang around longer to allow $minqual *different* skimmers to spot
+ them. At which point they are emitted. This is to catch the "slow
+ burning" spots where a call is spotted by different skimmers but
+ separated in time by more than $dwelltime - in fact maybe by
+ minutes.
+
+ $maxqual (default 9 skimmers) which short circuits the normal
+ hard maximum $quality (9 skimmer spots) and $dwelltime (10secs)
+ to allow a spot that has $maxqual *different* skimmers (usually
+ as the result of a burst from the RBN) to defeat $dwelltime and
+ be emitted the moment that condition is satisfied. There maybe
+ a better name for this.
+21Feb21=======================================================================
+1. add data section on 160m in bands.pl.
+07Sep20=======================================================================
+1, Change interface to watchdbg & grepdbg slightly so that multiple search
+ regexes are ANDed rather than ORed together. ORing is easily achieved
+ already by the usual regex pattern 'PATT..|PATT..|..' whereas ANDing could
+ not be done as easily without resorting lots of 'PATT.*PATH' things which
+ would not necessarily get what was wanted.
+2. Make sure that the pc92 C record only contains nodes and users and not
+ other extranoeus things like skimmers...
+15Aug20=======================================================================
+1. Simplify the skimmer scoring mechanism.
+13Aug20=======================================================================
+1. Improve the (displayed) RBN frequency weighting the skimmers' frequencies
+ w.r.t majority view on each spot. Any skimmer that disagrees with a
+ gets docked a 'point' from their 'good' score (if any) and have a 'point'
+ added to their 'bad' score. This score is then taked into account during
+ the 'choosing the real frequency' process. If a skimmer agrees with the
+ majority the process is reversed. To see this in action: set/deb rbnskim
+06Aug20=======================================================================
+1, Add CTY-3013 Prefixes
+2. Make RBN more efficient. Start the process of skimmer node performance
+ caching. Add minimum quality allowed (at 2), which will be overrideable.
+ The format of the rbn_cache has changed and so a full restart will occur.
+3. Collect channel input/output stats. New command: show/data_stats to show
+ them.
+4. Add local::lib qw{/spider/perl5lib} to store cpanm loaded modules just for
+ DXSpider. This is done so that updates needed by future changes can be done
+ as the sysop user and doesn't have to be done as root. This paves the way
+ for UPDATE.pl which will pull down new modules that it needs automatically.
+ When it's written, which will be soon.
+29Jul20=======================================================================
+1. Add show/rbn command that allows one to see who is online and configured
+ for RBN. See help sh/rbn for details.
+2. Fixed issue with set/ve7cc mode adding unwanted newlines to output.
+3. Attempted to make the QRG normalisation more "intelligent". This would be
+ sooooooooo much easier if skimmers were calibrated more accurately.
+4. Added CTY-3012 prefixes.
+23Jul20=======================================================================
+1. fix Filtering so that it does less of what it was doing badly, thus
+ the perl interpreter to do more of the work. Which means you *should* be
+ able to define more or less any allowable operation for that type of
+ filter. Which is a complicated way of saying: you can now use brackets.
+2. Regex expressions now appear as readable text in sh/filter.
+3. Make the RBN status file JSON, rather than DD format. In future versions
+ it will also be VERSIONed to enable more features to be added
+ transparently.
+4. Add show/rbn command to allow sysops to see who is using rbn.
+11Jul20=======================================================================
+1. Fix (embarrassing) gratuitous '#'s in bands.pl
+2. IMPORTANT: certain PC92 strings can crash DXSpider if the nologchan debug
+ category is set (which reduces debug files to sizes that non-developers can
+ reasonably store (especially during big contests)),
+10Jul20=======================================================================
+1. Fix console.pl permissions problem when running as another user not in
+ debug mode. Console.pl WILL NOT WORK in debug mode unless it is running
+ as the sysop user.
+08Jul20=======================================================================
+1. "Finish" the RBN system :-)
+2. This includes enabling the coarse selection of spot modes using set/wantrbn
+ with arguments like 'set/wantrbn cw beacon'. This limits your output to
+ just CW, BCN and DXF modes.
+3. The RBN spot is now cached. With a following wind, this means that even a
+ node restart, done in a timely fashion (within a few minutes) will not
+ cause a "cache warmup" delay for users on a restart.
+4. Added the "full fat" set/wantrbn command and aliased it to 'set/skimmer'.
+ I use both terms (whenever I remembered) in the help text.
+5. Help text has been written.
+6. The UPGRADE.mojo file has been tweeked to point out the users file format
+ change.
+7. Merge in users.v3j to the mojo branch.
+8. Add CTY-3011 prefixes.
+07Jul20=======================================================================
+1. Fix show/node command.
+2. Fix show/cluster command to take into account the presence of skimmer nodes
+ which are a new category of thing which is neither a node nor a user.
+06Jul20=======================================================================
+1. Add RBN.mojo with information of the RBN capabilities of DXSpider.
+05Jul20=======================================================================
+1. Fix show/dxcc.
+2. Add HAPROXY "real ip" type 1 handling for incoming connections.
+04Jul20=======================================================================
+1. Give console.pl (or dx) a good going over with a bog brush to *finally*
+ (cough) make it work correctly with a full 80 column window (and not just
+ to a width of 79 really). Also fix scrolling.
+28Jun20=======================================================================
+1. Merge mojo with users.v3j to remove all vestages of Storable from DXSpider
+ in an effort to make the whole storage thing more reliable (and also a
+ bit faster). The user file will be auto-upgraded on restart. This may take
+ up to 20 seconds on slower hardware (and maybe a bit longer on huge user
+ files). On my 180,000 odd users, on my hardware, it takes 4 seconds.
+2. The DXQSL system storage is also upgraded, Please run
+ /spider/perl/create_dxqsl.pl in a spare shell. This will recreate the
+ dxqsl.v1j file. Run 'load/dxqsl' in the console to activate it.
+17Jun20=======================================================================
+1. Change the Spot file reading mechanism back to the default of using 'tac'.
+08Jun20=======================================================================
+1. Fix show/mydx (lack of) filtering bug.
+2. Add qra locator to prefix_data.pl.
+3. Add 4 digit qra square for spotted callsign if show/dxgrid is enabled.
+4. Fix general filtering bug where erroneous input causes crashing.
+03Jun20=======================================================================
+1. Make sure that all possible regexes get passed across to the search engine.
+2. Fix out of order logging on sh/log queries spanning more than one month.
+3. Do not read backwards on sh/dx, reading forwards seems a 1/3 quicker.
+4. Add <ms>, <tr> and <es> shortcuts to sh/dx (e.g sh/dx <tr> on 2m).
+02Jun20=======================================================================
+1. Fix the small whoopsie in sh/dx.
+01Jun20=======================================================================
+1. Fix sh/dx iota and qra. This completes the conversion of sh/dx's limited
+ "old style" parsing to using Filter style parsing with something that
+ allows expressions include brackets ( and ) as well as the 'not' keyword.
+ NOTE: the precedence rules are the same as perl's '!', '||' and '&&'
+ operators.
+31May20=======================================================================
+1. Improve links command layout slightly.
+2. Issue an *accurate* UPGRADE.mojo with all the new packages included!
+3. Fix issue with sh/dx
+30May20=======================================================================
+1. Fix sh/dx! It appears that there is a long standing problem with sh/dx not
+ actually return all the answers it should. I have also had a request to
+ allow / enable the "not" keyword (just like the filtering system dones).
+
+ Now this was one of the earliest modules that I wrote and it took quite
+ a bit of work to tease out the important bits and then use the Filter
+ module (as in acc/spot) to generate the sh/dx filtering expressions. This
+ seems to have been done.
+
+ NB This will likely not work if you are using a SQL backend to do sh/dx
+ commands. This was never actually an official feature. It is now
+ deprecated.
+29May20=======================================================================
+1. Please install Math::Round and Data::Structure::Util. Instructions are
+ available in UPGRADE.mojo.
+2. ** Withdrawn ** user file format change to json not yet committed.
+20May20=======================================================================
+1. Backport convert-users-v3-to-v4.pl to allow creation of the new json
+ formatted *text* based user file from the old v3 DB_File and Storable
+ version. This can be done either online (with the node running) or offline
+ with the node stopped. This is in preparation for the next update of the
+ mojo branch. Running this program just *BEFORE* doing your next update of
+ the mojo branch *should* ensure a seemless transition to the Storable &
+ DB_File free version of the users file.
+2. Show git branch in show/version.
+3. Add CTY-3010 changes.
+17May20=======================================================================
+1. Backport DXSubprocess to change serialisations.
+ Currently the internals of Mojo::IOLoop::Subprocess defaults to
+ using Storeable as its cross-process argument and data serialisaion
+ method. It can use others. This update reverts back to the
+ original ForkCall method of using JSON.
+10May20=======================================================================
+1. Added basic changes so that users *could* have multiple connections to the
+ same node if it is allowed. This is work in progress and is there to see
+ if it deals with some networking problems encountered on very high volume
+ sites which can see more than 1000 users (although the problems can occur
+ with many hundreds or by the practices of certain ISPs). More information
+ will be forthcoming if I get to the bottom of what's REALLY going on and
+ whether this is (or maybe just one part of) the solution. It won't be
+ ready for general use until then.
+2. Fixed the script import error reported by Joaquin (EA3CV?), by the simple
+ expedient of restoring the version from the master branch.
+09May20=======================================================================
+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
+ to see the version and build nos of all nodes on the system.
+07May20=======================================================================
+1. Revert changes made since 25Apr concerning IP address reconciliation.
+25Apr20=======================================================================
+1. Add maximum no of users on node to show/cluster.
+2. Add ability to show last n lines of debugging ring buffer.
+3. Remove redundant wpxloc.dat file.
+24Apr20=======================================================================
+1. Add 'progress' debugging for showing that stuff is happening in nologchan
+ a.k.a ringbuffer only mode.
+2. Fix grepdbg so that no regex argument simply lists the file.
+3. Add CTY-3008 prefixes.
+22Apr20=======================================================================
+1. Fix the module search path in update_sysop.pl
+2. Add latest prefixes CTY-3007
+3. Fix unset/startup command. This will only work for users' start up scripts
+ things like user_default or startup must be edited or removed by hand.
+21Apr20=======================================================================
+1. Finally fix the "actually tranmit" any output (like from 'logout' files)
+ to users before disconnecting. This also means that disconnecting nodes
+ now receive the (totally redundant, but hey) PC39 reason for disconnection.
+20Apr20=======================================================================
+1. Speed up sh/log (including chat, rcmd, ann etc) that search the system
+ log files, by removing a completely redundant subsystem and also leveraging
+ the core operating system utility 'tac', if it's available.
+19Apr20=======================================================================
+1. The long haul that is the mojo branch has started up again. It's something
+ to do during this lockdown.
+2. The problems and instabilities around running commands that worked in
+ forked processes, when used other than by normally logged in users (e.g.
+ in the local crontab), have been fixed.
+3. If a /spider/local_data/logout file is present then its contents will be
+ sent to the user on logout.
+4. Add the ability to sh/dx origin or ip (address).
+5. Retire the use of the deprecated Mojo::IOLoop::ForkCall in favour of using
+ the supported equivalent in Mojolicious 7.26 and above. Which means you
+ will need to upgrade Mojo to at least the version. The current version is
+ 8.36 and is known to work.
+10Sep19=======================================================================
+1. Improve DXSql database filtering to exclude most via <locator> type
+ reports.
+2. Add CTY-2913 prefixes + wpxloc.raw
+14Jul18=======================================================================
+1. Add CTY-2808 prefixes + wpxloc.raw
+16Jun18=======================================================================
+1. add more modes to rbn.pl
+23Jan18=======================================================================
+1. Add CTY-2802 prefixes
+27Oct17=======================================================================
+1. Get correct hostname support and privilege levels on web connects.
+26Oct17=======================================================================
+1. Start (serious) work on web interface. Make the necessary changes to allow
+ a local webserver to connect and get its own style of messages.
+11Aug17=======================================================================
+1. Add default systemd service file file
+10Aug17=======================================================================
+1. check for disconnecting flag in more places
+31Jul17=======================================================================
+1. Fixed create_usdb.pl path specifications
+2. add CTY-2708 prefixes
+12May17=======================================================================
+1. Fix sh/425 (mostly)
+2. Add CTY-2706 prefixes
+05May17=======================================================================
+1. Add CTY-2705 prefixes
+04Apr17=======================================================================
+1. Add CTY-2704 prefixes
+17Mar17=======================================================================
+1. Add latest cty.dat & wpxloc.raw
+21Feb17=======================================================================
+1. Fix sh/dx on 14050 so that it does what one expects.
+2. Add CTY-2702 prefixes
+15Feb17=======================================================================
+1. Update UPGRADE.mojo a bit
+2. Add local::lib so that it can be used for non-root installations.
+09Jan17=======================================================================
+1. Fix mojo branch clean install issues (failing to find $main::data et al)
+02Jan17=======================================================================
+1. Add CTY-2615 prefixes
+2. Add rbn.pl - an experimental rbn deduplicating spot filter.
+26Dec16=======================================================================
+1. Fix some possible routes to $myalias callsigns becoming nodes.
+22Nov16=======================================================================
+1. Add CTY-2614 prefixes
+21Nov16=======================================================================
+1. Add CTY-2613 prefixes
+17Nov16=======================================================================
+1. Change method (again) of get processor seconds in cmd/mrtg.pl. Split out
+ main process from children and display each separately.
+16Nov16=======================================================================
+1. Change method of get processor seconds in cmd/mrtg.pl
+18Aug16=======================================================================
+1. Add CTY-2610
+2. put back msg total in & total out for mrtg and background mrtg
+3. add dxcc == ADIF country code.
+16Aug16=======================================================================
+1. Mega change to push all local data in $root/local_data and where there
+ is duplication with system data (still in $root/data) then use whichever
+ is newer. This will move stuff (permanently) like spots and other DXLog
+ files to local_data as well as the userfile, DX QSL file and usdb stuff.
+25Jul16=======================================================================
+1. Add some timing stats to cmd spawn_cmd.
+08Jul16=======================================================================
+1. Add latest wpxloc.raw
+2. Add CTY-2609
+28Mar16=======================================================================
+1. Fix get/keps.pl so that it does the right fetch
+25Mar16=======================================================================
+1. Rework DXCron::spawn command to use Mojo::IOLoop::ForkCall
+04Jan16=======================================================================
+1. Add CTY-2601 prefix file
+02Jan16=======================================================================
+1. fix new URL for sh/425 command
+30Dec15=======================================================================
+1. Add CTY-2516 prefix file
+2. Try to stop and also reset node call user records back to 'S'
+3. Fix multiple on_disc events in AsyncMsg.pm
+02Jun15=======================================================================
+1. Extend regex for quit to allow other commands starting in 'q'.
+2. Add CTY-2506 prefix file
+26May15=======================================================================
+1. Add CTY-2506 prefix file
+01Mar15=======================================================================
+1. Add CTY-2503 prefix file
+13Feb15=======================================================================
+1. Fix problem with sh/dx <call> if people are logging spots to a SQL database
+3. Added CTY-2502 prefixes.
+3. My late father would have been 102 today.
+27Nov14=======================================================================
+1. Add CTY-2415 prefix list
+25Nov14=======================================================================
+1. Add CTY-2414 prefix list
+21Nov14=======================================================================
+1. Add CTY-2413 prefix list
+21Oct14=======================================================================
+1. Add CTY-2011 prefixes
+16Sep14=======================================================================
+1. Add CTY2410 wpxloc.raw + cty.dat
+2. remove autoflush from logs
+16Sep14=======================================================================
+1. Fix (now) missing error_handler
+30Aug14=======================================================================
+1. add CTY-2409 prefixes
+2. add new wpxloc.raw
+19Jul14=======================================================================
+1. Use JSON::XS for ForkCall serialisation in DXCommandmode.pm
+19Jun14=======================================================================
+1. Fix EOF detection of incoming nodes.
+2. Attempt to autogenerate Version.pm with *correct* values (instead of the
+ the git id of the previous commit). Oh, and do it on every commit or pull.
+17Jun14=======================================================================
+1. Add CTY2405 prefix changes
+2. Arrange for all file searching routines based on sh/dx or sh/log to be
+ non-blocking. This should allow incoming and outgoing protocol to
+ continue flowing when such a command is run.
+3. Added some usable code to show/wx (finally).
+4. Make stats cmds (sh/v?hfstats, sh/v?hftable) non-blocking.
+5. Make sh/isolate, sh/registered, sh/lockout non-blocking.
+6. Fix shutdown command.
+16Jun14=======================================================================
+1. Get AsyncMsg working for HTTP type ephemeral connections
+21Apr14=======================================================================
+1. Add CTY-2405 prefix list
+08Mar14=======================================================================
+1. Add newer version of wpxloc.raw with some missing prefixes added.
+07Mar14=======================================================================
+1. Add new version of wpxloc.raw
+2. Fix a small crash with Spot::dup
+12Jan14=======================================================================
+1. Fix minor issue with dx command when used in a script, as found by
+ Christian Furst.
+2. Fix (rather serious) error in import_cmd that did not reset callsigns
+ correctly in $main::me.
+30Dec13=======================================================================
+1. Add CTY2312 prefix changes
+19Nov13=======================================================================
+1. Add CTY2311 Prefix changes - needed for CQWW 2013
+09Oct13=======================================================================
+1. Add CTY2310 prefix changes
+13Sep13=======================================================================
+1. Added CTY2309 prefix data, together with its associated wpxloc.raw file.
+10Sep13=======================================================================
+1. Add the get/keps command, which allows a sysop to get the latest AMSAT
+ keplarian elements either on demand or periodically in the crontab.
+10Sep13=======================================================================
+1. Fix sh/time such that no arguments print details for the caller.
+09Sep13=======================================================================
+1. Make all the Net::Telnet based commands (sh/425, sh/contest, sh/db0sdx,
+ sh/wm7d, sh/ik3qar) asynchronous, so that they no longer pause the node
+ while they go off and query the internet for results.
+06Sep13=======================================================================
+1. Fixed sh/contest so that it works again. How it ever worked at all is
+ a bit of a mystery. Now possible to type sh/cont dec or sh/cont dec 2013
+ (with month and year in any order). Please comment out any $contest_host
+ or $contest_url variables you may have in /spider/local/Internet.pm (if
+ you have one, that is). It will not work with the previous values.
+2. Added CTY2308 prefix changes.
+3. Added (back) internal function support inside commands. This allows
+ commands to create functions inside the <cmd_name>.pl files. There are
+ now also standard function names that can do special things.
+24Jul13=======================================================================
+1. Alter default node address in client.c from "localhost" to "127.0.0.1".
+21Jul13=======================================================================
+1. Fix Msg.pm to allow IPV6 addresses again (how did it ever work?).
+2. Add latest CTY2307 prefix changes.
+3. Other changes including (some) more prefix files, 4mm band data and
+ DXSql/Pg.pm
+4. Add ip address in links.pl
+31May12=======================================================================
+1. Added CTY2210 prefix changes
+29May12=======================================================================
+1. Added CTY2209 prefix changes
+10Apr12=======================================================================
+1. Added DXSql/Pg postgres Spot collection interface from Wijnand PD0MZ.
+2. Add CTY2206 prefix changes
+13Mar12=======================================================================
+1. add CTY2204 prefix changes + new wpxloc.raw
+12Mar12=======================================================================
+1. Check database operations on MySQL/SQlite3.
+2. Add ipaddr field to spot table if not present.
+3. Add ipaddr field from PC61 to database stored spots.
+09Mar12=======================================================================
+1. Try to trap unblessed references on receipt of PC34s
+15Feb12=======================================================================
+1. Add CTY2202 changes
+25Jan12=======================================================================
+1. Add CTY2201 changes
+21Dec11=======================================================================
+1. Add CTY2118 changes
+20Dec11=======================================================================
+1. fix strange startup repeating lockfile issue where (somehow) there is an
+empty (but existing) lockfile, from GB7YDX.
+29Nov11=======================================================================
+1. fix shutdown() in Msg.pm
+2. Add CTY2117 changes
+05Nov11=======================================================================
+1. Add CTY2116 changes
+04Nov11=======================================================================
+1. Add CTY2115 changes
+20Oct11=======================================================================
+1. Add CTY2113 Changes
+02Oct11=======================================================================
+1. change 40m bandplan after some input from Martin, ik2rmz
+2. Add CTY2112 changes
+25Jul11=======================================================================
+1. add CTY2109 changes + wpxloc.raw for ST0
+2. add CTY2110 changes
+24May11=======================================================================
+1. Add CTY-2108 prefixes
+04Apr11=======================================================================
+1. After being poked by Brendan EI6IZ, add outgoing IPV6 connect() handling
+29Mar11=======================================================================
+1. Add CTY-2106 prefixes
+16Mar11=======================================================================
+1. Add CTY-2105 prefixes
+10Mar11=======================================================================
+1. Add CTY-2104 prefixes
+01Mar11=======================================================================
+1. Add CTY-2103 prefixes
+31Oct10=======================================================================
+1. Increase PC92 A/D "slug" time to 5 minutes.
+29Oct10=======================================================================
+1. Allow Jim AD1C to track the changes to the cluster in realtime using the
+debug system (set/debug cluster).
+27Oct10=======================================================================
+1. fix chat problem introduced in the last update
+25Oct10=======================================================================
+1. Drop PC12s purporting to originate at nodes that do PC9x (suggestion from
+Lee VE1CC).
+2. Increase default dup age for announces from 5 -> 18 hours.
+3. add CTY 2009 cty.dat data.
+4. Stop downgrading and sending CHAT messages on PC12 groups as it appears
+that this is yet another "standard" that isn't universally understood.
+23Oct10=======================================================================
+1. add dbexport command to allow the export of ak1a style databases to a
+file.
+2. add dxqsl_import and dxqsl_export commands to allow the import and export
+of sh/dxsql qsl manager data extracted from spots as they pass through.
+04Oct10=======================================================================
+1. add CTY-2007 prefix list
+04Oct10=======================================================================
+1. incorporated the major prefix release CTY-2006 from Jim AD1C
+17Jun10=======================================================================
+1. Add ip address to dxspots and default to PC61 output to dxspider nodes.
+2. Allow 4 letter callsign portions again.
+16Jun10=======================================================================
+1. Increase default ephemeral dupe time for PC41 and such like lines.
+2. Include CTY-2004 updates.
+08Apr10=======================================================================
+1. Modify console.pl so that it works in a Windows Cmd window. Get a Windows
+Curses ppd from: http://cpan.uwinnipeg.ca/dist/Curses.
+18Mar10=======================================================================
+1. Make privilege 0 "stick" if set on nodes
+13Mar10=======================================================================
+1. try to fix AGW crashes caused by peerhost looking at the wrong thing.
+2. Add more ax25 fixes for peerhost
+03Mar10=======================================================================
+1. add IP addresses to connecting PC92 A addresses and log them
+2. add CTY-2002 prefixes
+27Nov09=======================================================================
+1. Add 500khz band as suggested by Béla, HA5DI.
+2. Add CTY-1923 prefixes
+26Nov09=======================================================================
+1. add ip address to PC92 A records
+25Nov09=======================================================================
+1. Change sh/qrz to use the xml interface. You will have to subscribe to
+the xml interface - see http://www.qrz.com/XML/index.html for more info.
+2. Remove (bodged) forced encoding to iso-8859 on incoming text. More
+subtle handling will be required.
+3. Add CTY-1922 prefixes
+14Nov09=======================================================================
+1. Add CTY-1921 prefixes
+2. allow -SSID values on set/badnode
+27Aug09=======================================================================
+1. Add CTY-1913 prefixes
+2. Limit Route::config to 10 levels (as default)
+08Jul09=======================================================================
+1. Add CTY-1912 prefixes
+26Jun09=======================================================================
+1. Add CTY-1911 prefixes
+14Jun09=======================================================================
+1. Add CTY-1910 prefixes
+04Jun09=======================================================================
+1. removed warnings from debug.c from the C Client.
+2. Add CTY-1909 prefixes
+02Jun09=======================================================================
+1. Add CTY-1908 prefixes
+29May09=======================================================================
+1. Add CTY-1907 prefixes
+19May09=======================================================================
+1. Add CTY-1905 prefixes
+15May09=======================================================================
+1. Add CTY-1904 prefixes
+2. Accommodate "official" git command syntax in issue.pl
+29Dec08=======================================================================
+1. Add show/motd command as requested by Ian G0VGS.
+2. add CTY-1817 prefixes
+17Nov08=======================================================================
+1. Fix sh/425 to work with new server
+2. add CTY-1814 prefixes
+21Oct08=======================================================================
+1. Add CTY-1811 prefixes
+04Oct08=======================================================================
+1. set $main::maxconnect_node = 0 as default. It's causing too much aggro..
+02Oct08=======================================================================
+1. Add set/maxconnect command to allow the defaults to be overridden for
+individual users/nodes.
+2. Make sure that the check really is for incoming connections only...
+01Oct08=======================================================================
+1. added CTY-1809 prefix data
+2. added new config variables to allow an incoming users to have (as default)
+up to 2 other connections to other nodes and incoming nodes up to 8 other
+parents. Note that you can switch off this behaviour by setting
+$main::maxconnect_user or $main::maxconnect_node = 0 (or set them to whatever
+you need).
+28Jun08=======================================================================
+1. Made buddies work again on PC92.
+26Jun08=======================================================================
+1. added show/ik3qar command by Leo IZ5FSA. See comments in perl/Internet.pm
+for setup instructions (note that you will have to copy these lines to
+local/Internet.pm before it will work).
+2. Send talks to every node a user is logged onto.
+24Jun08=======================================================================
+1. Change the route finding algorithm completely. No more recursion. No more
+tree searching. It now gives you answers even on a partial cluster map. Oh
+and the answers are correct, instead on completely random.
+2. Put back (maybe some of) US State handling.
+3. Add CTY-1806 prefix data
+28May08=======================================================================
+1. remove "recursion limit" message from Route.pm
+28May08=======================================================================
+1. Improve the detection of short exact callsigns that are out of prefix area
+(eg K7A) (thank you FCC).
+2. Improve long line handling on console.pl
+3. Add CTY-1805 cty.dat
+26May08=======================================================================
+1. Put a hard limit on the depth of searching for routes
+2. Add CTY-1804 prefix changes
+13May08=======================================================================
+1. add disc users|nodes|all so that each of these classes can be disconnected
+in one command. From a request by Luigi IK5ZUK.
+12May08=======================================================================
+1. add 'exact' keyword on sh/dx to allow for an exact match to a callsign.
+From a request by Robert HB9DZA.
+10May08=======================================================================
+1. add some privileges to (un)set/bad* and show/bad* commands. Thanks to
+Mauro IV3SCP for pointing this out to me.
+06May08=======================================================================
+1. Finally made the incompatible change of changing DXUser->get* to
+DXUser::get*. This will break any third party addons or commands use these
+commands.
+2. Change version to 1.55
+3. Drop the lower limit of 60m to 5100 after Dave G7RAU pointed out usage.
+(see http://www.bandplans.com/index.php?band=60)
+22Apr08=======================================================================
+1. Added two Xmas Is calls.
+15Apr08=======================================================================
+1. added CTY-1803 changes
+25Mar08=======================================================================
+1. Include some cty.day changes
+19Mar08=======================================================================
+1. Include CTY-1802 cty.dat changes from Jim AD1C
+29Feb08=======================================================================
+1. Fix crash on rcmd of an invalid command.
+25Feb08=======================================================================
+1. Arrange for AGWMsg to retry connection either if the AGW engine isn't
+loaded on startup or it disappears for some reason and restarts.
+19Feb08=======================================================================
+1. Added CTY-1801 cty.dat data.
+2. Fix problem with entering non-ascii data and then executing commands that
+are guessed from the "cleaned up" version of the string. Now if you enter
+commands with invalid characters, it will error immediately.
+3. fix a problem detecting IPV4 localhost on IPV6 enabled systems.
+10Feb08=======================================================================
+1. sort sh/node output. Also show more information.
+05Feb08=======================================================================
+1. Added a Windows only BPQ interface from the man himself: John G8BPQ.
+See some instructions in /spider/txt/spiderBPQ_en.txt for how to use it.
+07Jan08=======================================================================
+1. more changes to cty.dat
+07Jan08=======================================================================
+1. added TO5FJ to cty.dat (under orders from Jim AD1C :-)
+05Jan08=======================================================================
+1. Made necessary change to get DXSpider to (seem to) work in perl 5.10
+27Dec07=======================================================================
+1, added CTY-1711 prefix changes (and new wpxloc.raw) from Jim AD1C.
+25Nov07=======================================================================
+1. Fix a crash on receiving an rcmd from an new node.
+21Nov07=======================================================================
+1. Added CTY-1710 prefix changes
+19Nov07=======================================================================
+1. change MRTG graphs to be based on GMT, not localtime. This allows one to
+more easily compare debug data with traffic graphs.
+2. Add a create/user command to just add a plain user.
+17Nov07=======================================================================
+1. Add Local::ann() as requested by Felipe PY1NB.
+16Nov07=======================================================================
+1. add CTY-1709 prefix changes
+2. added extra checking for the time stamp on PC9x sentences. These must now
+be within 15 minutes (configurable) of this node's time to be accepted.
+3. made show/newc terminal width aware.
+24Oct07=======================================================================
+1. Added CTY-1708 prefix changes
+23Oct07=======================================================================
+1. Added CTY-1707 prefix changes
+15Oct07=======================================================================
+1. prevent PC61 from propagating outside spider boxes.
+2. simplify the regex for sh/contest to allow it to work on perl < 5.8.x.
+09Oct07=======================================================================
+1. Added *VERY* important change to prevent loops on PC9x sentences.
+06Oct07=======================================================================
+1. added the possibility of having a motd_ax25 especially for sending to
+radio connections after a suggestion by Paolo YV1DIG.
+05Oct07=======================================================================
+1. Handle PC61 from VE1CC clusters as PC11.
+01Oct07=======================================================================
+1. fix .gtkconsole_data creation bug.
+27Sep07=======================================================================
+1. Fixed gtkconsole to split out all the windows. See
+/spider/gtkconsole/README for installation and usage instructions. This
+program will work on both Windows and Linux provided the extra Gtk2 perl
+libraries + dependencies are installed. Instructions for getting them are in
+the README file.
+25Sep07=======================================================================
+1. Fix mrtg command so that it does not require /var/lock (which anyway gets
+removed and recreated on boot - and the debianised mrtg does not recognise
+that) nor /var/lib/mrtg for the confcache (whatever that is).
+24Sep07=======================================================================
+1. fix error message on disconnect and, BTW, fix the cause of premature
+disconnections in the new PC92 code.
+22Sep07=======================================================================
+1. fix mrtg script so that it sets LANG='C', in addition, it appears that you
+will need to create a /var/lock/mrtg and /var/lib/mrtg directory, both with
+chmod 01777 /var/lock/mrtg /var/lib/mrtg. They may already exist but without
+the correct permissions.
+15Sep07=======================================================================
+1. Add *optional* INET6 connectivity. In order to use this you must load
+IO::Socket::INET6 and its dependencies from CPAN or get the distro's packaged
+versions. I used 'sudo aptitude install libio-socket-inet6-perl' for ubuntu
+(which should work for debian as well), for fedora/rpm based systems
+'sudo yum install perl-IO-Socket-INET6' or near equiv should work. This has
+been done quite simplistically, but it seems to work.
+10Sep07=======================================================================
+1. Remove warnings for EINPROGRESS etc for Windows perl 5.8.
+2. Try to see if using just one lastid is viable in all situations. If it is
+then this will cure the talk problem.
+20Aug07=======================================================================
+1. add cty.dat + wpxloc.raw changes for CTY-1706.
+31Jul07=======================================================================
+1. extend 60m band slighty and add ssb section.
+2. add a new cty.dat (CTY-1705) from Jim AD1C.
+27Jul07=======================================================================
+1. Added Angel's changes to Messages for Spanish (finally).
+25Jul07=======================================================================
+1. don't clear out routing tables on shutdown. This should speed that up.
+24Jul07=======================================================================
+1. Try to target PC93 (the combined talk/ann/chat sentence) better. Prevent
+PC12 chat going to non-dxspider and non-ak1a nodes. None of the others seem to
+handle it correctly (Lee VE7CC: do you?).
+2. a few other tidyups,
+see: http://www.dxcluster.org/cgi-bin/gitweb.cgi?p=spider.git
+for details.
+18Jul07=======================================================================
+1. Change the meaning of set/isolate. Set/isolate now works in both directions
+in that an isolated node will only have its local config remembered and will
+only be sent this nodes local config. This is exactly equivalent to both
+ends setting set/isolate. If that is already the case then there should be
+no noticeable change. Any extra that the far node sends, over and above its
+local config will now be ignored.
+17Jul07=======================================================================
+1. remove dupefile on startup and on ending the node. Add clear/dupefile
+command to allow people to do it at runtime as well.
+12Jul07=======================================================================
+1. Change disconnection code so that nodes that are no longer routable are
+(all) cleared out.
+2. Add help for sh/band and also allow query of individual band or regions.
11Jul07=======================================================================
1. improve speed of sh/c/n
2. remove all $Id$ strings from cmd tree