summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-03-30Correct/improve signal handling logging.Luke Bratch
2024-03-30Implement changing client-side TLS certificate and key paths, and reloading ↵Luke Bratch
certificate/key at runtime when doing a REHASH (BLABOUNCER command or SIGHUP).
2024-03-30Update TODO.Luke Bratch
2024-03-30Pass VERSION at compile time based on "git describe". Add fallback VERSION ↵Luke Bratch
file for if Git isn't installed.
2024-03-30Make Makefile pay attention to header files, and add a make clean.Luke Bratch
2024-03-29Update TODO.Luke Bratch
2024-03-29Implement BLABOUNCER commands LISTCLIENTS and DISCONNECT.Luke Bratch
BLABOUNCER LISTCLIENTS: List all connected clients and their authentication status. BLABOUNCER DISCONNECT [FD]: Disconnect a client with file descriptor number [FD] (see LISTCLIENTS output).
2024-03-29Sanity check that the requested fd is greater than zero in arrindex().Luke Bratch
2023-08-01Always close() the replay log file if it's been opened.Luke Bratch
2023-08-01Correctly handle too many clients by doing accept() and close() immediately ↵Luke Bratch
rather than trying to add to clients[] struct.
2023-07-24Add some extra debugging for truncated messages.Luke Bratch
2023-07-24Fix incorrectly printed debug message.Luke Bratch
2023-07-24Include 437 (ERR_UNAVAILRESOURCE) as part of "nick in use" resolution upon ↵Luke Bratch
connecting.
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.