summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-04-09Fix ban list request handling - support both "MODE #channel b" and "MODE ↵Luke Bratch
#channel +b".
2023-04-09Don't write CTCP VERSION messages to replay log. CTCP VERSION replay/relay ↵Luke Bratch
behaviour is now as follows: Replaying: PRIVMSG VERSION - requests - from other people - don't replay (only valid when originally sent). PRIVMSG VERSION - requests - from us - don't replay (we shouldn't receive our own requests). NOTICE VERSION - responses - from other people - don't replay (only valid when originally sent). NOTICE VERSION - responses - from us - don't replay (we shouldn't receive our own responses). Relaying (to non-requesting Blabouncer clients): PRIVMSG VERSION - requests - from other people - do relay (responses are valid from all our clients). PRIVMSG VERSION - requests - from us - don't relay (we shouldn't receive our own requests). NOTICE VERSION - responses - from other people - do relay (can't know number of responses in advance, might get unsolicited messages). NOTICE VERSION - responses - from us - don't relay (we shouldn't receive our own responses).
2023-04-09Update TODO.Luke Bratch
2023-04-08Add/correct description for writereplayline().Luke Bratch
2023-04-08Improve stdin handling (only available when running in foreground mode) - ↵Luke Bratch
don't get stuck in a loop when handling EOF/^D/Ctrl+D, improve debug output, improve comments, initialise variables more safely, exit main loop on errors.
2023-03-23Update TODO.Luke Bratch
2023-03-23Don't try to sockread() or socksend() if the file descriptor is NULL, assume ↵Luke Bratch
all socksend() return values of <0 are errors, correct (currently unused) return values in sendtoserver().
2023-03-21Don't try to close log file if the pointer was NULL.Luke Bratch
2022-12-20Ignore messages rather than exiting if the client that sent a message no ↵Luke Bratch
longer exists.
2022-11-25Fix broken debugprint() call in isnickinanychannel() which was referencing a ↵Luke Bratch
non-existent printf string.
2022-11-25Implement fake QUIT handling via a NOTICE when doing a replay.Luke Bratch
Since user QUIT messages don't contain channel names, clients that didn't know which channels a nick was in when receiving a quit message for that nick can't show a per-channel QUIT notification. Some clients just display the QUIT message in the server status window, others silently ignore it. Cater for those clients by sending a NOTICE about the QUIT rather than replaying it - assuming the nick isn't still in any of our channels.
2022-11-24Fix replaymode = "lastspoke" by using line numbers rather than time to ↵Luke Bratch
calculate replay start point. Introduce new function doreplaylastspoke() to achieve this, move doreplay() into replay.c as doreplaytime() and refactor common things into sanitisereplay().
2022-11-23Update TODO.Luke Bratch
2022-11-23Correct comments in functions.c.Luke Bratch
2022-09-02Deal with servers only sending a nick rather than nick!user@host as the last ↵Luke Bratch
token of greeting 001.
2022-09-02Improve comment/debug clarity.Luke Bratch
2022-02-10Relay server PINGs to all clients in case they rely on PINGs to stay alive.Luke Bratch
2022-01-03Increase maximum auto join channels from 10 to 40, correctly check for ↵Luke Bratch
maximum configuration array length, correct configuration array debug output text.
2022-01-03Fix PRIVMSG logging going to the wrong log file.Luke Bratch
2021-01-25Use a space followed by a colon to determine the final parameter in ↵Luke Bratch
extractfinalparameter(). This fixes the topic being stored incorrectly when the setter's host is a raw IPv6 address.
2021-01-19Fix various issues where strncmp was only comparing a substring.Luke Bratch
This fixes issues such as when JOINing a channel whose name is a substring of another channel, things like PARTing don't work properly.
2021-01-18Make the "channels" configuration file entry an array.Luke Bratch
2020-10-24Create INSTALL file for dependencies/compilation/installation/uninstallation ↵Luke Bratch
and move compilation out of README file.
2020-10-24Add install and uninstall recipes to Makefile.Luke Bratch
2020-10-24Use $ instead of # to show shell examples in README.Luke Bratch
2020-10-22Send fully formed PONG responses to client PINGs, particularly relevant ↵Luke Bratch
after server timeouts/reconnects e.g. for XChat.
2020-10-21Don't have arrindex() return 0 on failure as 0 is a valid index. Instead ↵Luke Bratch
return -1 and change callers to check this.
2020-10-21Improve debug output in readreplayline().Luke Bratch
2020-10-21Correct detection of changed nick for updating existing clients when ↵Luke Bratch
reconnecting to server after a timeout.
2020-10-21Mark each channel as not having received nick names yet so existing clients ↵Luke Bratch
get channel nicks after server reconnections.
2020-01-05Fix some situations where the remote IP of a connecting/disconnecting client ↵Luke Bratch
is wrong in the debug log and NOTICEs.
2020-01-05Have openssl_accept return 0 if fd_toggle_blocking failed.Luke Bratch
2020-01-05Correct a comment.Luke Bratch
2019-12-23Add BLABOUNCER VERSION command and change version string to have -git suffix ↵Luke Bratch
between releases.
2019-12-22Significantly reduce memory usage by only initialising channel struct ↵Luke Bratch
elements when they are used for the first time.
2019-12-22Make full debug output optional for extractnickfromprefix() and ↵Luke Bratch
stripprefix() to avoid huge debug logs when using replaymode = "lastspoke" combined with DEBUG_FULL.
2019-10-02Try to make removenickfromallchannels() much faster when another user QUITs ↵Luke Bratch
by ignoring unused channel indexes.
2019-10-02"LOG_MODE" should be "type == LOG_MODE" in logging.c.Luke Bratch
2019-10-02Various typo fixes.Luke Bratch
2019-09-16Release version 0.2.v0.2Luke Bratch
Please see the NEWS file for a highlight of changes in this release.
2019-09-16Add a NEWS file.Luke Bratch
2019-09-16Log user/channel mode setting in the replay and normal logs.Luke Bratch
2019-09-16Make all log filenames lowercase - since IRC nicks and channel names are ↵Luke Bratch
case-insensitive, we can ensure a nick/channel with varying case always ends up in the same log file.
2019-09-16Correctly log and NOTICE new connections' remote IP addresses.Luke Bratch
2019-09-15Remove nicks from channels when reconnecting, before re-JOINing them.Luke Bratch
2019-09-15Make sure some temporary nick strings are large enough to hold a full ↵Luke Bratch
:nick!user@host string.
2019-09-15Don't print stashed truncated strings in the debug log.Luke Bratch
2019-09-15Use filename safe strings for all log types.Luke Bratch
2019-09-15Make sure nicks passed to the "update all channels" functions have non-zero ↵Luke Bratch
lengths to avoid an enormous loop.
2019-09-15Use global signal(SIGPIPE, SIG_IGN) instead of the send() flag MSG_NOSIGNAL ↵Luke Bratch
since we can't pass MSG_NOSIGNAL to OpenSSL's SSL_write when using TLS connections.