blabouncer 0.3 - 2024-04-01 New features: - Fix replaymode = "lastspoke": - This is listed as a new feature rather than a bug fix as it's the first time it's really worked and it's fantastic. - Implement runtime client-side TLS changing when doing a rehash (BLABOUNCER REHASH command or SIGHUP): - Re-read "certfile" and "keyfile" paths from configuration file. - Always reconfigure OpenSSL context to replace certificate without restarting. - Implement BLABOUNCER commands LISTCLIENTS and DISCONNECT: - LISTCLIENTS: List all connected clients and their authentication status. - DISCONNECT [FD]: Disconnect a client with file descriptor number [FD] (see LISTCLIENTS output). - Add a BLABOUNCER VERSION command. - Support KICK command and log/replay it appropriately. - Version information now uses Git if `git` is installed and the blabouncer repo is present. - Makefile improvements: - Add "make install". - Add "make uninstall". - Add "make clean". - Pay attention to modified header files. Changes: - Pass version number at compile time based on "git describe". Add fallback VERSION file for if Git isn't installed. - Improve performance when another user QUITs. - Reduce debug log size during replays when using debug = "2". - Improve memory usage. - Fake replayed QUITs using NOTICEs for clients who don't show anything when a QUIT is received for an unknown nick. - Send fully formed PONG responses to client PINGs. - Relay server PINGs to all clients in case they rely on PINGs to stay alive. - Increase maximum auto join channels from 10 to 40. - Continue rather than exit in certain unexpected situations. - Include ERR_UNAVAILRESOURCE when doing "nick in use" resolution. - Correctly handle too many clients by doing accept() and close() immediately rather than trying to add to clients[] struct. - Improve stdin debugging commands when using foreground mode (-f): - "listchannels" now includes channel nicks. - Correctly handle EOF. - Improve debug output and stability. - Don't write CTCP VERSION messages to replay log. CTCP VERSION replay/relay behaviour is now as follows: - Replaying: -- PRIVMSG VERSION - requests - from other people - don't replay. -- PRIVMSG VERSION - requests - from us - don't replay. -- NOTICE VERSION - responses - from other people - don't replay. -- NOTICE VERSION - responses - from us - don't replay. - Relaying (to non-requesting Blabouncer clients): -- PRIVMSG VERSION - requests - from other people - do relay. -- PRIVMSG VERSION - requests - from us - don't relay. -- NOTICE VERSION - responses - from other people - do relay. -- NOTICE VERSION - responses - from us - don't relay. Bug fixes: - Fix MODE logging. - Fix some situations where the remote IP of a connecting/disconnecting client is wrong in the debug log and NOTICEs. - Fix existing clients getting channel nicks after real IRC server reconnections. - Correct detection of changed nick for updating existing clients when reconnecting to server after a timeout. - Fix PARTing a channel whose name is a substring of another channel. - Fix PRIVMSG logging going to the wrong log file. - Deal with servers only sending a nick rather than nick!user@host in RPL_WELCOME. - Support channel bans using "+b" as well as "b". - Typo fixes. - Comment clarifications. - Many, many, more! blabouncer 0.2 - 2019-09-16 New features: - Implement arrays in the configuration file and use them to specify: - multiple connect commands - multiple nicks - Add a configuration file option to include the date in the timestamp when replaying the replay log. - Please note: the above two configuration file changes require changes to the configuration file, please see blabouncer.conf.example. - Log server messages to a file named .log. - Log additional things in channel log files: - QUIT messages - NICK changes - Channel/user MODEs Changes: - BLABOUNCER REPLAY time is now specified with D:H:M instead of D:H:M:S. - Send remote IP addresses instead of fd numbers in NOTICEs to clients. - Make some older compilers happy by specifying -D_BSD_SOURCE and -std=gnu99. - Make all log filenames lowercase - since IRC nicks and channel names are case-insensitive, we can ensure a nick/channel with varying case always ends up in the same log file. Please note this may mean any existing log files with uppercase letters will no longer be written to. Bug fixes: - Avoid various cases of server responses being relayed to all clients instead just the requesting client. - Avoid non-existent users appearing in channels after they change nicks by replay logging nick changes. - Avoid NICK synchronisation issues by ignoring replay log nick changes from us if not our current nick, and by completely ignoring replaying any type of replay log line from before blabouncer was launched. - Avoid possible crash if replay file does not exist. - Avoid possible crash if a socket write fails. - Many, many, more! blabouncer 0.1.1 - 2019-07-25 Bug fixes: - Fix logging to the wrong file in the case that the bouncer's nick changed whilst running. blabouncer 0.1 - 2019-07-18 - Initial release.