summaryrefslogtreecommitdiff
path: root/message.c
AgeCommit message (Collapse)Author
2024-03-31Don't bother trying to do removenickfromchannel() after a PART or a KICK if ↵Luke Bratch
we just did removechannel() because the PARTing/KICKed nick was ours.
2024-03-31Handle server KICK commands.Luke Bratch
2024-03-30Implement changing client-side TLS certificate and key paths, and reloading ↵Luke Bratch
certificate/key at runtime when doing a REHASH (BLABOUNCER command or SIGHUP).
2024-03-29Implement BLABOUNCER commands LISTCLIENTS and DISCONNECT.Luke Bratch
BLABOUNCER LISTCLIENTS: List all connected clients and their authentication status. BLABOUNCER DISCONNECT [FD]: Disconnect a client with file descriptor number [FD] (see LISTCLIENTS output).
2023-07-24Include 437 (ERR_UNAVAILRESOURCE) as part of "nick in use" resolution upon ↵Luke Bratch
connecting.
2023-04-09Fix ban list request handling - support both "MODE #channel b" and "MODE ↵Luke Bratch
#channel +b".
2023-04-09Don't write CTCP VERSION messages to replay log. CTCP VERSION replay/relay ↵Luke Bratch
behaviour is now as follows: Replaying: PRIVMSG VERSION - requests - from other people - don't replay (only valid when originally sent). PRIVMSG VERSION - requests - from us - don't replay (we shouldn't receive our own requests). NOTICE VERSION - responses - from other people - don't replay (only valid when originally sent). NOTICE VERSION - responses - from us - don't replay (we shouldn't receive our own responses). Relaying (to non-requesting Blabouncer clients): PRIVMSG VERSION - requests - from other people - do relay (responses are valid from all our clients). PRIVMSG VERSION - requests - from us - don't relay (we shouldn't receive our own requests). NOTICE VERSION - responses - from other people - do relay (can't know number of responses in advance, might get unsolicited messages). NOTICE VERSION - responses - from us - don't relay (we shouldn't receive our own responses).
2022-12-20Ignore messages rather than exiting if the client that sent a message no ↵Luke Bratch
longer exists.
2022-11-24Fix replaymode = "lastspoke" by using line numbers rather than time to ↵Luke Bratch
calculate replay start point. Introduce new function doreplaylastspoke() to achieve this, move doreplay() into replay.c as doreplaytime() and refactor common things into sanitisereplay().
2022-02-10Relay server PINGs to all clients in case they rely on PINGs to stay alive.Luke Bratch
2021-01-19Fix various issues where strncmp was only comparing a substring.Luke Bratch
This fixes issues such as when JOINing a channel whose name is a substring of another channel, things like PARTing don't work properly.
2020-10-22Send fully formed PONG responses to client PINGs, particularly relevant ↵Luke Bratch
after server timeouts/reconnects e.g. for XChat.
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.
2020-10-21Correct detection of changed nick for updating existing clients when ↵Luke Bratch
reconnecting to server after a timeout.
2020-01-05Fix some situations where the remote IP of a connecting/disconnecting client ↵Luke Bratch
is wrong in the debug log and NOTICEs.
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-10-02Try to make removenickfromallchannels() much faster when another user QUITs ↵Luke Bratch
by ignoring unused channel indexes.
2019-10-02Various typo fixes.Luke Bratch
2019-09-16Log user/channel mode setting in the replay and normal logs.Luke Bratch
2019-09-15Remove nicks from channels when reconnecting, before re-JOINing them.Luke Bratch
2019-09-15Make sure some temporary nick strings are large enough to hold a full ↵Luke Bratch
:nick!user@host string.
2019-09-15Log nick changes to the normal log file(s).Luke Bratch
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-09-14Specify multiple nicks using a configuration array instead of multiple ↵Luke Bratch
individual settings.
2019-09-14Implement arrays in the configuration file and start using them to allow for ↵Luke Bratch
multiple connect commands.
2019-09-12Log server messages to file named <ircdname>.log.Luke Bratch
2019-09-07Avoid more replay log NICK synchronisation issues by ignoring replay log ↵Luke Bratch
nick changes from us if not our current nick, and by completely ignoring replaying any type of replay log line from before blabouncer was launched.
2019-09-07Only relay channel ban information to the client that requested it.Luke Bratch
2019-09-07Avoid non-existent users appearing in channels after they change nicks by ↵Luke Bratch
replay logging nick changes.
2019-09-07Correct some typos with the replay days:hours:minutes syntax help/documentation.Luke Bratch
2019-09-07Don't relay IRC operator WHOIS server responses and OPER up client requests ↵Luke Bratch
to all clients.
2019-09-06Send remote IP addresses instead of fd numbers in NOTICEs to clients and ↵Luke Bratch
print both in related debugprint()s.
2019-09-06Add BLABOUNCER HELP as a valid command to avoid the unrecognised command error.Luke Bratch
2019-09-06Change BLABOUNCER REPLAY to be D:H:M instead of D:H:M:S.Luke Bratch
2019-07-25Fix logging to the wrong file in the case that the bouncer's nick changed ↵Luke Bratch
whilst running.
2019-07-18Release version 0.1!v0.1Luke Bratch
Also add version information (client welcome message, -v, and --version).
2019-07-18Fix compiler warnings emitted by Clang/LLVM and some older GCC versions.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-16Load all settings from configuration file at startup instead of reading it ↵Luke Bratch
for certain settings (password/nick/nick2/nick3).
2019-06-16Handle client PROTOCTL NAMESX by just passing on to the server.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 pass server PONGs to clients.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-10Refactoring - split giant processircmessage() switch statement into separate ↵Luke Bratch
server and client functions in message.h/message.c.