summaryrefslogtreecommitdiff
path: root/blabouncer.c
AgeCommit message (Collapse)Author
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.
2019-05-17Condense multiple arrays being passed around into one nice big struct to be ↵Luke Bratch
passed around (huge change) and improve efficiency of sendtoallclients() loop.
2019-05-16Correctly handle nicks changing and actually track users PARTing channels.Luke Bratch
Also change nickuserhost to store the leading colon (:) since it's always needed (so far).
2019-05-16Improve "listchannels" stdin debugging command.Luke Bratch
2019-05-16Make logging and replay logging optional.Luke Bratch
2019-05-16Move default configuration file location to $HOME/.blabouncer/ and create a ↵Luke Bratch
default file automatically if it doesn't exist.
2019-05-16Add a configurable base directory for things like logs, defaulting to ↵Luke Bratch
$HOME/.blabouncer/.
2019-05-16Implement normal logging (file per channel/user).Luke Bratch
2019-05-15Add a blabouncer welcome message to clients upon connection.Luke Bratch
2019-05-15Improve NOTICE output sent to client when no replay lines are available or ↵Luke Bratch
when getting the help message.
2019-05-15Add some help output for unrecognised BLABOUNCER commands.Luke Bratch
2019-05-15Add custom command to let a client request a replay of however many seconds ↵Luke Bratch
at any time.
2019-05-13Implement optional TLS for the server side.Luke Bratch