summaryrefslogtreecommitdiff
path: root/blabouncer.c
AgeCommit message (Collapse)Author
2019-06-01Handle SIGINT (Ctrl-C) and SIGTERM (kill command) cleanly and fix unrelated ↵Luke Bratch
server reconnect upon send() returning -1 issue.
2019-05-30Implement daemon (background) mode by default with optional foreground mode ↵Luke Bratch
that can be specified on the command line.
2019-05-30Remove most (all?) exit()s with error handling without exiting where ↵Luke Bratch
possible. Convert most remaining printing to stdout/stderr to debugprint() instead.
2019-05-30Convert debugprint() from being to file/screen/disabled to always being to ↵Luke Bratch
file with configurable verbosity.
2019-05-29Include NOTICEs in the replay log and normal logs. Particularly useful for ↵Luke Bratch
relaying NickServ IDENTIFY password warnings to clients shortly after connecting.
2019-05-29Implement an optional connect command, providing an example configuration of ↵Luke Bratch
a NickServ IDENTIFY command.
2019-05-29Inform all clients when a client sends BLABOUNCER QUIT.Luke Bratch
2019-05-29Implement BLABOUNCER QUIT command.Luke Bratch
2019-05-29Read debug setting from configuration file immediately before doing debug ↵Luke Bratch
file rotation to avoid writing to previous debug file.
2019-05-29Warn the relevant client if the replay log can't be read.Luke Bratch
2019-05-29Don't exit if there's a failure to read/write from/to the replay log file.Luke Bratch
2019-05-28Implement debugging to file and set the default configuration file to be that.Luke Bratch
2019-05-28Fix BLABOUNCER REPLAY time values of "0" (e.g. 1:00:00 for one hour).Luke Bratch
2019-05-27Make debug output optional and disabled by default.Luke Bratch
2019-05-27Include 671 (RPL_WHOISSECURE) responses in WHOIS pending code.Luke Bratch
2019-05-27Rewrite all server connection code to enable reconnecting to the server if ↵Luke Bratch
there was a timeout, an error, or if the server disconnected us.
2019-05-27Correct mistake in previous MAXTOKENS buffer overflow commit.Luke Bratch
2019-05-27Make sure MAXTOKENS being exceeded can't cause a buffer overflow.Luke Bratch
2019-05-27Allow the BLABOUNCER REPLAY command time to be specified with ↵Luke Bratch
days:hours:minutes:seconds.
2019-05-27Automatically try new nicks if there's no more configured nicks to try (e.g. ↵Luke Bratch
if foo is in use, try foo1, foo2, ..., foo9).
2019-05-27Handle CTCP VERSION requests and responses.Luke Bratch
2019-05-27Support connecting to passworded servers.Luke Bratch
2019-05-27Change default certfile and keyfile to be <basedir>/ instead of ↵Luke Bratch
$HOME/.blabouncer/.
2019-05-27Only do CAP multi-prefix negotiation with clients if the server approved it ↵Luke Bratch
in the first place.
2019-05-27Only compare nick instead of full nick!user@host when processing server ↵Luke Bratch
JOIN/PART/NICK. Also handle the "new" nick already being set in greeting strings during a server NICK if it's changing our nick.
2019-05-27Set ircdstrings.mode to null string when initialising and only send our MODE ↵Luke Bratch
to new clients if irdstrings.mode was set.
2019-05-21Only try new nicks if the server tells us 432/ERR_ERRONEUSNICKNAME or ↵Luke Bratch
433/ERR_NICKNAMEINUSE if we weren't already registered with it. Avoids crash if the server changes our nick and our next automatic attempt was in use or invalid.
2019-05-21Support multiple nick prefixes in channels by storing/relaying server ↵Luke Bratch
005/RPL_ISUPPORT messages and implementing the start of IRCv3 CAP negotiations (multi-prefix only at the moment).
2019-05-21Correctly clear pending WHOIS flag only when receiving 315 RPL_ENDOFWHO.Luke Bratch
2019-05-21Don't send "new client has successfully authenticated" NOTICE to the client ↵Luke Bratch
that has just connected.
2019-05-21Only do SSL_free() in disconnectclient() if using client TLS.Luke Bratch
2019-05-20Remove duplicated WHOIS reply handling section.Luke Bratch
2019-05-20Don't inform clients about other client disconnections until after clearing ↵Luke Bratch
the clients array, or we risk trying to send to a socket that's no longer there.
2019-05-20Fix memory leak when updating nick when server sends NICK.Luke Bratch
2019-05-19Fix channel NAMES relay behaviour to only go to the requesting client.Luke Bratch
2019-05-19Include 313 (RPL_WHOISOPERATOR) and 320 (RPL_WHOISSPECIAL) in ↵Luke Bratch
pending-clients-only WHOIS responses.
2019-05-19Don't log replay TOPIC/JOIN/PART if we're not in that channel, and don't ↵Luke Bratch
ever replay them if they were from ourself.
2019-05-19Use case-insensitive string comparisons when reading client commands as we ↵Luke Bratch
can't trust them to be uppercase.
2019-05-19Send JOINs/PARTs to clients before the logging functions manipulate the line.Luke Bratch
2019-05-19Change defaults (including default and example configuration files) to look ↵Luke Bratch
for cert.pem and key.pem in ~/.blabouncer/.
2019-05-19Enable replay logging and replaying of JOINs, PARTs, and TOPIC sets.Luke Bratch
2019-05-19Enable logging of TOPIC changes.Luke Bratch
2019-05-19Rewrite logging function to enable logging JOINs/PARTs as well as PRIVMSGs.Luke Bratch
2019-05-19Announce the start and end of log replay. Also ensure log replay lines ↵Luke Bratch
finish with CRLF when writing.
2019-05-19Remove any old channel nicks/modes/prefix code that isn't needed any more ↵Luke Bratch
since we don't store channel nicks any more. Also fix a memory leak.
2019-05-19Add support for automatically JOINing channels specified in the ↵Luke Bratch
configuration file.
2019-05-19Add some help output if certificate or key files are missing.Luke Bratch
2019-05-19Only relay WHOIS and WHOWAS requests to the server and their responses to ↵Luke Bratch
the requesting client. Also fix flag for pending LIST responses.
2019-05-19Handle server MODEs more intelligently, in particular so we can relay our ↵Luke Bratch
user MODE to new clients correctly.
2019-05-19Rework all channel RPL_NAMREPLY code to properly relay user prefixes in ↵Luke Bratch
channels when clients connect. Do this by asking server for the latest NAMES whenever a client connects and relay that to new clients.