9980-9978 - presence, bug fixes

March 11th, 2022

Versions 9980 - 9978 include:

9980:

- Fix bug in which packet bounce count was being reset to 0

9979:

- Display only users who are online in nicklist

9978:

- Display timestamps for out of order direct messages in the appropriate dm buffer
- Display timestamp warning only once for a series of consecutive messages
- Adjust default intervals for checking and storing messages in the order buffer - 5 min. seems too long
- Don't resemd GETDATA requests for the same packet when multiple identical packets arrive as GETDATA responses.
- Fix bug in which requests for direct messages in storage would always fail

9980-preserve-bounces.vpatch

9980-preserve-bounces.vpatch.thimbronion.sig

9979-presence.vpatch

9979-presence.vpatch.thimbronion.sig

9978-bugfixes.vpatch

9978-bugfixes.vpatch.thimbronion.sig

Blatta 9981 - Replay Notices

March 2nd, 2022

Version 9981 includes:

- send notices to channel instead of server buffer
- send replay notices prior to each getdata response that is earlier than the last displayed message

This change should resolve issues loggers and IRC clients have had parsing messages with timestamps prepended. Also results to commands that return listings such as %wot and %at will be displayed in the #pest channel instead of in the server buffer/console, which IMO is much more convenient.

9981-replay-notice.vpatch

9981-replay-notice.vpatch.thimbronion.sig

Blatta 9982 has been putted

February 24th, 2022

Version 9982 includes:

- support for GETDATA packets
- % sigil for commands
- support for db migrations
- updated short buffer algo to only list peers providing the lowest bounce count for a given hearsay message

This is a 90% rewrite of the previously released version, so there will likely be some bugs. There is a db migration, so back up your old database before running this version. Please note changes to the command line options.

Please note that it may take up to 5 minutes for you to receive the first message if you are joining the net with this version the first time, as that is the default order buffer expiration.

9982-getdata.vpatch

9982-getdata.vpatch.thimbronion.sig

Blatta 9985: One thread only

December 4th, 2021

Version 9985 includes:

- complete removal of threading
- don't listen for tcp connections after irc client connected
- removed --verbose and --debug options, now there is just --log-level, which accepts "debug" as an argument. default is info.
- irc server binds only to localhost
- info logs now have better info

Notes:

I've left this version running for about 14 hours and encountered no exceptions or crashes.

9985-single-thread.vpatch

9985-single-thread.vpatch.thimbronion.sig

Blatta 9986: Rebroadcast simple hearsay, embargo simple hearsay, more...

December 1st, 2021

Version 9986 includes:

- rebroadcast simple hearsay messages
- embargo simple hearsay messages
- more granular db write locking that should eliminate occasional slqite3.Programming error exceptions
- Pass broadcast message bytes straight through instead of recompiling them before rebroadcast
- Better handling of AT entries with empty addresses
- Fix erroneous references to 'logger' that should have been 'logging'

9986-rebroadcast-simple-hearsay-and-more.vpatch

9986-rebroadcast-simple-hearsay-and-more.vpatch.thimbronion.sig

Blatta 9987: hearsay embargo

November 29th, 2021

Version 9987 includes:

- embargoing of in-wot messages
- hearsay message labeling
- removed IRC message formatting from pest message body
- some removal of dead/unnecessary irc related code
- limit of one irc client connection per station
- fix for crash when messages sent to unknown handle
- proper padding
- message bytes complied one time only
- a small number of unit tests

Notes:

This version introduces threads in order to implement hearsay embargoing. This opens the possibility of a whole new world of bugs. The pest portion of Blatta has been refactored for ease of unit testing. I added unit tests to avoid recreating the actual network conditions that would produce the hearsay messages that need to be tested. I am considering adding unit tests for the message packing portion of the code. This could come in handy for others when building their own pestrons.

9987-embargoing.vpatch

9987-embargoing.vpatch.thimbronion.sig

Blatta 9988: deduplication by message hash

November 17th, 2021

Version 9988 includes:

- Overhaul of deduplication algo: Previously timestamps were used to determine whether or not a message was unique. Now a hash of the message is being used. WARNING: Messages from stations that have not yet applied 9988 may not be detected as dupes by 9988 due to the switch from timestamps to hashes. There were multiple issues in previous versions causing messages with identical irc message payloads to appear to be different when hashed.

- Fix for overzealous rubbish message broadcasts.

Additionally, I have started publishing my station's debug log in an effort to aid Blatta testers.

9988-hash-dedup.vpatch

9988-hash-dedup.vpatch.thimbronion.sig

Blatta 9989: presence for wot

November 14th, 2021

Version 9989 includes:

- joins automatically sent for peers in WOT.
- join/part sent for peer/unpeer commands.
- AT timestamp now updated on receipt of rubbish packets
- --channel-name command line option for specifying what chan your Pest network expects everyone to be on.
- Don't include hostname in irc messages from clients.

9989-show-wot-nicks.vpatch

9989-show-wot-nicks.vpatch.thimbronion.sig

Blatta 9990: rubbish messages

November 13th, 2021

Blatta 9990 implements rubbish messages in order to attempt to keep ephemeral ports open.

Also included is a fix to prevent Blatta from crashing on bad input to the AT command and some refactoring wrt message handling that doesn't affect behavior.

9990-keep-ephemeral-ports-open.vpatch

9990-keep-ephemeral-ports-open.vpatch.thimbronion.sig

Blatta 9991: Better logging and miscellaneous fixes

November 11th, 2021

Improved logging with abbreviated message hashes associated with addresses should help track down missing messages.

Improved logging of various things that can go wrong with a message.

Fixes a crash caused by attempting to add a duplicate handle.

AT timestamps are now only set when a message has been received from a peer.

Removed some options that shouldn't be used. Renamed --ports to --irc-ports for clarity

Poll the socket only once per second instead of continuously

Renamed default database file to blatta.db

9991-improved-logging.vpatch

9991-improved-logging.vpatch.thimbronion.sig