summaryrefslogtreecommitdiff
path: root/blabouncer.c
AgeCommit message (Collapse)Author
2019-09-06Change how the received client string length check is done before stripping ↵Luke Bratch
newlines to avoid a potential buffer underflow.
2019-07-18Release version 0.1!v0.1Luke Bratch
Also add version information (client welcome message, -v, and --version).
2019-07-18Only check for newlines at the end of client strings if the string length is ↵Luke Bratch
at least one.
2019-07-10Make sure messages aren't too long after combining truncated messages.Luke Bratch
2019-07-10Make setting configuration option "replayseconds" optional if "replaymode" ↵Luke Bratch
!= "time".
2019-07-09Rename selret to pselret since it's now the return code for pselect().Luke Bratch
2019-07-09Avoid SSL_accept() blocking if the client fails to do TLS negotiation.Luke Bratch
2019-06-17Implement a per-client identifier so auto replay can replay everything a ↵Luke Bratch
given client has missed.
2019-06-16Implement two new auto replay modes:Luke Bratch
- replaymode = "noclients": All messages since the bouncer last had no clients connected - replaymode = "lastchange": All messages since the last client connect or disconnect
2019-06-16Handle very long lines and very short lines. Print to terminal if we fail ↵Luke Bratch
to connect to server at startup. Don't print to terminal if sending to a client or to the server fails.
2019-06-16Load all settings from configuration file at startup instead of reading it ↵Luke Bratch
for certain settings (password/nick/nick2/nick3).
2019-06-16Handle failing to connect to the real IRC even after the socket has been ↵Luke Bratch
created.
2019-06-16Log OpenSSL errors properly instead of printing to stderr.Luke Bratch
2019-06-13Just debugprint() the socket fd number if there was a client read error.Luke Bratch
2019-06-12Allow reloading the configuration file at runtime using a BLABOUNCER command ↵Luke Bratch
or by issuing the SIGHUP signal.
2019-06-12Don't print server or client recv() errors to the terminal, debugprint() ↵Luke Bratch
them properly instead.
2019-06-12Handle failing to reconnect to the server upon timeout or disconnection by ↵Luke Bratch
looping the reconnection and keeping clients informed.
2019-06-12Handle failing to connect to the server on startup.Luke Bratch
2019-06-11Implement configurable auto replay modes. So far there is "none", "time" ↵Luke Bratch
(auto replay the last X seconds), and "lastspoke" (auto replay everything since you last spoke).
2019-06-11Refactoring - rename ircdstrings struct to ircdstate since it doesn't just ↵Luke Bratch
contain strings.
2019-06-11Send a PING to the server before assuming a timeout is definite.Luke Bratch
2019-06-10Use debugprint() instead of printf() if the server times out.Luke Bratch
2019-06-10Refactoring - split giant processircmessage() switch statement into separate ↵Luke Bratch
server and client functions in message.h/message.c.
2019-06-10Refactoring - move most functions into functions.h/functions.c except ↵Luke Bratch
connect/exit functions only relevant in main.c.
2019-06-10Refactoring - move structs into a separate file structures.h.Luke Bratch
2019-06-10Add copyright and GPL 3 notices.Luke Bratch
2019-06-01Use errno to handle getconfint() failing.Luke Bratch
2019-06-01Put debug logs in subdirectory and have max number to keep be configurable. ↵Luke Bratch
Also fix possible crash in debugprint() if debug directory doesn't exist yet.
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