summaryrefslogtreecommitdiff
path: root/blabouncer.c
AgeCommit message (Collapse)Author
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.
2019-05-18No need to store channel modes as clients ask for them when JOINing.Luke Bratch
2019-05-18Check authentication status of client as early as possible when receiving ↵Luke Bratch
its commands to avoid unnecessary processing.
2019-05-18Handle nick in use or invalid nick, add multiple nicks to configuration file ↵Luke Bratch
to automatically try.
2019-05-18Tell clients to go away if we're not registered with the real server yet.Luke Bratch
2019-05-18Alert other clients when clients connect, disconnect, authenticate, or fail ↵Luke Bratch
to authenticate.
2019-05-18Accurately track the number of connected clients.Luke Bratch
2019-05-18Fix another buffer overrun and numerous memory leaks.Luke Bratch
2019-05-18Only send certain known responses to the client that requested them. So far ↵Luke Bratch
implemented channel MODE requests, channel ban requests, WHO requests, and LIST requests.
2019-05-18Avoid some buffer overruns.Luke Bratch
2019-05-17Track and relay our user MODE correctly, including for new clients.Luke Bratch
2019-05-17Properly support changing our nick while connecting by updating it ↵Luke Bratch
everywhere including initial server welcome strings. Make sure channels are cleared when PARTing them. Ignore most commands from clients until they are registered with us. Send the correct current nick when sending NOTICEs.