updated the Changes file a bit
[spider.git] / Changes
diff --git a/Changes b/Changes
index c1f2f0e06689f721c50093045f91651f1924a2f7..717d5e70374271594b6154a2592a64930afb5a58 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,330 @@
+22Oct99=======================================================================
+1. allow filter CALLSIGNS to be in upper or lower case.
+2. create the concept of input and output filters, input filters are of the 
+form "in_$call.pl" eg: "in_g1tlh.pl" (or "in_G1TLH.pl"), output filters are 
+"g1tlh.pl" (or "G1TLH.pl").
+3. all users can now filter on spots, ann and wwv (assuming the sysop has set
+the filters up - still no user creatable filters. Nodes can filter on both
+input for announces and output for all of these. I would recommend setting 
+up a few filters that are likely to be wanted and then symlinking callsigns
+to them as you get requests.
+4. added callsign and length of history/position of screen stats to console.
+If you want to change the colour of the callsign you will need to copy the
+Console.pm to your /spider/local directory and change the $mycallcolor equate.
+21Oct99=======================================================================
+1. fixed reply so that reply b or reply nop generate a bulletin with the 
+correct address.
+2. implemented sh/muf command.
+3. reduced privilege of catchup and uncatchup to 5. This so that, suitably
+privileged, nodes that occasionally link can rcmd a "catchup <nodecall> all"
+to the node they are connecting to and thus prevent a large tranche of, 
+potentially duplicate, mail. This isn't an issue for DXSpider, but may be
+an issue for any AK1A clusters you are connected to.
+20Oct99=======================================================================
+1. Translated all the subroutines of minimuf into perl as Minimuf.pm
+2. Limited the length of an ANN that is saved for de-duping to $pc12_dup_lth
+(def 72)
+3. help command should now return stuff that you expect.
+4. reduced necessary privilege to use 'MSG' command to 6.
+5. Correct the count of spots and wwv for a merge.
+6. Allow decodes of DK0WCY-3 WWV data beacon announces
+7. rewrote send so that an SB doesn't send a buckshee bull to NOPRIVATE!
+8. Changed default colouration on console so that all spots >= 50Mhz are red
+9. Fixed init command so that PC21s are sent down non-initted channels
+10. Allow forwarding of unknown private mail. This means that you can set up
+forwarding of 'foreign' mail across to and by gateways using the same 
+mechanism as bulletins (/spider/msg/forward.pl).
+11. Allow line wrapping on the console (G0RDI, G0VGS et al).
+18Oct99=======================================================================
+1. changed help command so that it works correctly with multiple title lines.
+2. added to address to the list of things a message checks to see whether it
+is a duplicate (how on earth did it take _this_ long to find this one?).
+3. Changes S CC so that the callsign it says it has sent to is the real one
+(request from G8TIC)
+21Sep99=======================================================================
+1. allow zero messages to be stored (request from G4PDQ)
+2. make DX more flexible and change spotter syntax to be consistant with
+sh/dx (request from K9AN)
+30Aug99=======================================================================
+1. remove -@ as well as \d from SSIDs for spots
+2. remove WEB and/or NET from the front or rear of callsigns in Prefix.pm
+29Aug99=======================================================================
+1. Added msg command to allow the changing of To, From, Subject and so on the
+messages. This seems particularly important just now as a whole raft of G3's
+seem to be putting out non private bulls to callsigns.
+2. While I am at set messages to TO fields that appear to be users to private
+if they have been sent as bulls.
+3. Add DISTROs, if a callsign field appears in /spider/msg/distro in upper
+use that as a list of callsigns to send further. Note this is potentially
+recursive as callsigns in a distro can be distros.
+25Aug99=======================================================================
+1. check the date of a WWV much more carefully.
+24Aug99=======================================================================
+1. Prevented spots with lowercase callsigns being forwarded. This opens a
+much bigger can of worms which I shall have to address later.
+17Aug99=======================================================================
+1. all protocol except PC29 containing %XX characters will be dumped.
+2. Changed console.pl so that if you start typing it moves the top window
+back to the bottom.
+19Jul99=======================================================================
+1. Added iota and qra clauses to sh/dx as well, these take optional arguments
+and will look for the appropriate strings.
+17Jul99=======================================================================
+1. Started database integration.
+2. added qsl clause to sh/dx that searches for qsl or via in the dx info
+16Jul99=======================================================================
+1. drop frames with 'illegal' characters in them (but pass frames with 
+embedded %XX characters).
+15Jul99=======================================================================
+1. Changed grepdbg to accept a regexp. More useful (to me anyway).
+2. Altered init command so that it doesn't send PC21s down the initted 
+channel.
+10Jul99=======================================================================
+1. added an explicit disconnect from my side for already connected calls. This
+appears to have fixed a problem where if two consoles connect at the same time
+with the same (sysop?) callsign the cluster would stop.
+2. added some debugging in the Message handler to allow more state to be seen.
+3. Message handler now seems to work better for longer and doesn't spew out
+PC42 aborts with quite such gay abandon.
+05Jul99=======================================================================
+1. added stat/msg and stat/cluster commands to allow me to poke about inside
+the msg and cluster node tables.
+04Jul99=======================================================================
+1. removed silly 'new message has arrived' to connected nodes 
+2. added a ! command to the console.pl program; works like the bash shell.
+01Jul99=======================================================================
+1. Altered priv to 5 for connect.pl to match disconnect for nodes
+29Jun99=======================================================================
+1. fixed merge command that I broke.
+2. added some randomness in waittimes for aborted outgoing messages 
+3. Message Queuing now only occurs every 5 minutes (configurable if anyone 
+wants to write the command for doing it) and on receipt of a PC16. This is
+a further attempt at sorting the crossing of messages!
+4. a PC33 will cause another attempt at queuing. If you are on a roll, keep
+going!
+28Jun99=======================================================================
+1. console.pl now works with history and editting.
+2. added scrolling to stuff sent by the cluster.
+3. added colours to things.
+27Jun99=======================================================================
+1. added WWV filtering
+2. added timeouts to for forwarding Messages, also added a waiting time for
+failed (stalled) outgoing messages.
+3. Incoming messages will now have priority over outgoing messages to the
+same node.
+4. Added 'catchup' command which will 'catchup' messages to date for a node. 
+This means that when you start forwarding to a node, it doesn't get all the
+messages queued up that are probably old.
+5. added 'uncatchup' which does the opposite of the above.
+6. fixed kill full and PC49 handling so that it actually works.
+7. Fixed local aliases so they add to the front of the standard ones. This
+means you only need to add your specials or override the system ones you need
+to.
+21Jun99=======================================================================
+1. changed regex for cluster->client msgs so that strings like |---| are no
+longer ignored.
+20Jun99=======================================================================
+1. prevented a merge to myself (causes a loop)
+18Jun99=======================================================================
+1. fixed a problem with DXLogPrint repeating log entries.
+2. altered the permissions on disconnnect so that priv 5 users can disconnect
+clusters, but still require priv 8 to disconnect users.
+3. made sure that an incoming PC18 clears out all the cluster info for
+that channel before re-initialising.
+4. add init command.
+5. disconnect users before nodess on shutdown
+15Jun99=======================================================================
+1. added grepdbg program (so you can search your debug files and get times
+and dates of incidents).
+2. Moved DXVars.pm to DXVars.pm.issue to force new users to cp it to their
+local directory.
+3. added $allowzero to DXProt to allow thru PC19s with zero protocol versions.
+14Jun99=======================================================================
+1. changed IO::File in help and apropos to IO::File
+2. added a check for isa('DXNode') for PC50s
+08Jun99=======================================================================
+1. Started work on the curses based operator console.
+03Jun99=======================================================================
+1. cluster seems to have a memory leak, put DESTROY functions in where 
+appropriate.
+2. try to make sure that PC21 commands are not issued inappropriately and
+also reformat PC19 for onward broadcast so that nodes coming in on loops are
+dropped from those broadcasts.
+3. make sure PC16,17,19,21 doen't affect locally connected nodes.
+4. Changed all instances of FileHandle to IO::File.
+01Jun99=======================================================================
+1. removed a output of an unwanted pc21 for isolated nodes
+31May99=======================================================================
+1. Added checking for PC16,17,19 and 21 to make sure that they come in from
+the channels that they are supposed to.
+2. Pass the RCMDing node's priv level to the command (rather than the 
+connecting node's privilege level).
+3. Pass thru merge requests for other nodes.
+4. Removed a warning from client.pl
+5. routed external DB commands and drop them (for now) locally
+6. routed external mail commands (ie those addressed elsewhere)
+7. routed external PC26/27 lines 
+25May99=======================================================================
+1. try to make the lastin value correct even for local users
+2. got rid of the stupid bug that failed to print out the offline message
+but put a "*main::STDOUTmain" for every line of that message instead.
+3. Ported to 5.00503 (well actually just installed it and it just runs). 
+4. Added who command
+23May99=======================================================================
+1. Got rid of some of the useless error messages on global destruction when
+quiting a program.
+2. Stuck -w back on client.pl
+23May99=======================================================================
+1. tried to change connection to raw mode for cluster connections
+2. sh/c and sh/u are now sorted in alphabetical order
+3. Limited the number of queued dx spots when composing messages to 20 (the 
+oldest one is lost for every one added above 20).
+4. Added generalised shell globbing everywhere I think it is useful, including
+sh/dx, dir, sh/files etc
+5. Made dir more compatible with ak1a and added 'to' and 'from' call searching
+it should now do everything that ak1a does except counts.
+6. added similar functionality to kill command so that you can kill ranges, to
+and from callsigns etc.
+22May99=======================================================================
+1. added check for -1 from Date::Parse and return undef for out of range dates
+2. added show/files and type commands
+21May99=======================================================================
+1. made set/nodx work again.
+2. made dx stuff queue nicely again when sending messages.
+18May99=======================================================================
+1. Added announce dup checking.
+2. Added system announce filtering.
+08May99=======================================================================
+1. Added a bit more checking to the rcmd thing to make more sure that this
+rcmd isn't coming from an imposter. Not possible to prevent everything 
+ofcourse, just make it a bit harder.
+2. altered set/lockout and set/privilege so that they can't executed remotely.
+3. Added some code to reject rubbish (with invalid binary characters) protocol
+or user lines as input.
+4. prevented PC command being executed remotely :-)
+05May99=======================================================================
+1. change the connection overlap from an abort to a disconnect.
+02May99=======================================================================
+1. Added the mechanism for doing user spot filtering for spots in the cluster 
+(no user control just yet - but sysops can do it).
+2. Fixed problem with nodes sending out the node lists of isolated nodes.
+30Apr99=======================================================================
+1. Try to make it even more AK1A friendly by putting the node list out in the
+'correct' order.
+2. added code so that local users and commands go to all connected nodes 
+INCLUDING the isolated ones.
+26Apr99=======================================================================
+1. added set/user command as a hack, please use this with care, there is
+very little checking.
+2. added export_opernam.pl which is a basic reader of AK1A opernam.dat files
+to stdout
+25Apr99=======================================================================
+1. Fixed problem with filtered spots not coming out.
+2. Added the possibility of filtering on channel callsign
+20Apr99=======================================================================
+1. altered order of undefing and closing of user file in an attempt to make 
+corruptions/missing users less likely.
+2. made messages that are addressed to the node call appear to the alias call
+3. check dates much more rigourously.
+4. ignore SIGTERM and SIGINT during shutdown of the cluster
+15Mar99=======================================================================
+1. added $actiondata to filter line to allow per action data such as no of hops
+2. fixed a silly problem in talk for non-existant callsigns
+3. Added sysop command
+02Mar99========================================================================
+1. Changed DXUser so that it uses a homemade import/export hash routine 
+2. DXUser now uses a DB_BTREE file
+3. Added export_users.pl, import_users.pl and convert_users.pl
+25Feb99========================================================================
+1. added NL language stuff.
+2. added set/language
+21Feb99========================================================================
+1. Allowed multiple 'on <freq>' for show/dx
+2. Made sure the 'on 20m/ssb' thing worked (also 'on hf/cw').
+3. first cut of the Filtering code, no user commands yet but the file
+format is defined and manually added filters should work for spots
+17Feb99========================================================================
+1. added export_user.pl to export user files (for interest and safety)
+2. changed DXUser::init to allow O_RDONLY access which may limit the number
+of coredumps G0RDI seems to get.
+15Feb99========================================================================
+1. Added msg forwarding code which uses $main::root/msg/forward.pl.
+14Feb99========================================================================
+1. Changed A & K in WWV to be the other way around (I am told by G3IOR that
+this will mean that we won't have pole to pole aurora nor all the power lines
+overloading everywhere as well as a result of having values of K > 10).
+2. allow the '~' character in message bodies.
+3. Moved $main::data/badmsg.pl to $main::root/msg/badmsg.pl.
+11Feb99========================================================================
+1. Fixed a problem with isolated nodes' configurations being sent on sending 
+local configs to new connections.
+08Feb99========================================================================
+1. added a $SIG{ALRM} in the client to actually catch the alarm when it goes 
+off which means that the netrom/ax25 call programs terminate properly (and not
+loop as fast as their little legs can paddle, soaking up CPU time).
+2. Implemented read receipts as an especial request from G4PDQ.
+3. Fiddled with DXUser a bit to see whether I can stop it core dumping on new
+users in PC16s on G0RDI's machine.
+4. Added E4 (Palestine) to Prefix data.
+30Jan99========================================================================
+1. Some of the dates we get can cause crashes, tried to make it more robust (oh
+and Y2K compliant)
+2. PC16 seem to come in with missing callsigns from somewhere
+3. added $main::data/baddx.pl which prevents callsigns that are in the list being
+a) forwarded b) stored and c) (except for the originator, if local) being
+displayed locally.
+4. added $main::data/badmsg.pl which deletes any messages whose TO address is
+in this list (this is largely for european sensibilities). 
+18Jan99========================================================================
+1. added present(),presentish() and disconnect() to DXCron so that you can see 
+(easily) if a station is on the cluster anywhere and also disconnect them
+locally. 
+2. added rcmd() to DXCron so you can send an rcmd to someone else from crontab.
+3. <embarrassment>Fixed create_sysop.pl so that longitude is spelt correctly
+there as well</embarrassment> made the update work properly. NOTE create_sysop
+will only do what you expect if all cluster.pl and client.pl programs are 
+stopped.
+4. DXCron wasn't reading in reliably on startup, this is now (hopefully) fixed.
+the -M semantics are rather strange!
+5. The -w switch is now standard on cluster.pl
+6. Added last_connect() which gives the last connect time of a user (or now
+if connected).
+7. Added present_on(call, node) and presentish_on(ditto) which returns true if 
+the call is connected to the node.
+8. incoming messages for users will now send a 'new message' message (instead
+of merely generating the message)[who wrote this rubbish?].
+9. Hooked $SIG{__WARN__} and $SIG{__DIE__} so we store these nasty error 
+messages.
+10. Print the no of users on restricted protocol links if we have had PC50
+11. Had a go at making the sh/cl stats more accurate.
+12. PC11 was trying to call Local::spot1 instead of Local::spot, no warning 
+previously.
+13. Added a simple lockfile to prevent more than one cluster running at a time
+17Jan99========================================================================
+1. fixed some permission problems on DXLog.
+2. There is a circumstance in DXMsg which caused the cluster to stop on an 
+null ref pointer which I can't get to the bottom of but have bandaided out 
+for now.
+3. Started filter and Database code.
+4. Upper cased all the TO callsigns for sending to more than one station in
+messages.
+07Jan99========================================================================
+1. Fixed Geomag after emacs reformatted it wrong so sh/wwv works again.
+2. Added more range checking in WWV spots (they really are a heap of ...)
+3. Changed create_sysop.pl so that you can update as well as create the user 
+file
+4. Remove spotter's SSID from WWV spots
+06Jan99========================================================================
+1. Do some range checking for spots and WWV in the future (got a WWV for Oct 
+2034 whhich caused a bit of confusion!)
+2. Make WWV spots broadcast them to the users! (as opposed to merely storing 
+them)(thank you G0RDI).
+3. Allow users to do show/announce (thank you JE1SGH).
+4. Delay broadcasts to users if they are not in a 'prompt' state (means you can
+add messages and see what you are doing on a busy system)
+5. Made set/unset dx,ann,wx,talk,wwv do what is expected
+6. added set/sys_location and set/set_qra to set the cluster lat/long and qra
+7. New messages will now be announced on logon (if there are any)
 03Jan99========================================================================
 1. Upped the version no !!!!
 2. made the DXProtocol routines much less sensitive to '~' characters (JE1SGH)