summaryrefslogtreecommitdiff
path: root/functions.h
AgeCommit message (Collapse)Author
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.
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-09-16Release version 0.2.v0.2Luke Bratch
Please see the NEWS file for a highlight of changes in this release.
2019-09-16Make all log filenames lowercase - since IRC nicks and channel names are ↵Luke Bratch
case-insensitive, we can ensure a nick/channel with varying case always ends up in the same log file.
2019-09-15Start tracking nicks in channels (upon JOIN/PART/QUIT/NICK) and use that to ↵Luke Bratch
correctly log QUITs in the replay log and normal log(s).
2019-07-25Release version 0.1.1.v0.1.1Luke Bratch
This fixes a bug where messages would be logged to the wrong file if the bouncer's nick had changed whilst running.
2019-07-18Release version 0.1!v0.1Luke Bratch
Also add version information (client welcome message, -v, and --version).
2019-07-10Ensure log filenames are safe for writing.Luke Bratch
2019-06-17Implement a per-client identifier so auto replay can replay everything a ↵Luke Bratch
given client has missed.
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-12Allow reloading the configuration file at runtime using a BLABOUNCER command ↵Luke Bratch
or by issuing the SIGHUP signal.
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-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-10Add copyright and GPL 3 notices.Luke Bratch
2019-05-30Convert debugprint() from being to file/screen/disabled to always being to ↵Luke Bratch
file with configurable verbosity.
2019-05-28Implement debugging to file and set the default configuration file to be that.Luke Bratch
2019-05-27Make debug output optional and disabled by default.Luke Bratch
2019-05-27Make sure MAXTOKENS being exceeded can't cause a buffer overflow.Luke Bratch
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-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-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-12Make configuration file path configurable on the command line. Also finish ↵Luke Bratch
removing the non-functional debug() stuff.
2019-05-08Make TOPIC tracking/following/setting/etc. work for most/all scenarios and ↵Luke Bratch
ensure it's always given out to new clients correctly. Also misc other bug fixes.
2019-04-20We are bouncing! You can now:Luke Bratch
- connect the bouncer to a server - connect to the bouncer with a real client - join channels - have new clients connect and have the bouncer join those new clients to the channels - relay PRIVMSGs between all clients Some random current big bugs: - Joining channels whilst multiple clients are already connected doesn't join all clients properly - Parting channels doesn't work - No idea what will happen if the nick is in use, etc. Features missing: - Almost everything :)
2019-04-18Split functions into different filesLuke Bratch