aboutsummaryrefslogtreecommitdiffstats
BranchCommit messageAuthorAge
amdj/autotools-version-fixinclude/serno.h.SH: correct check for git directoryGravatar Aaron Jones3 months
amdj/fix-buildsys-headersClean up include/stdinc.h and librb/include/rb_lib.hGravatar Aaron Jones3 months
amdj/list-memleakMerge branch 'main' into amdj/list-memleakGravatar Doug Freed7 weeks
amdj/meson-generation-builddateMeson: Decouple creation and generation data from versionGravatar Aaron Jones4 weeks
amdj/modulesTidy up module loading codeGravatar Aaron Jones5 months
amdj/openssl-strerrorOpenSSL backend: Use nicer error strings for system errorsGravatar Aaron Jones4 months
amdj/unify-openssl-macroUnify the preprocessor macro for OpenSSL supportGravatar Aaron Jones5 months
dwfreed/meson-rebasedbuild: add Meson buildsystemGravatar Valentin Lorentz5 months
dwfreed/rm-rf-autotoolsbuild: remove autotools buildsystemGravatar Doug Freed4 months
mainOnly init solanum once in tests/sasl_abort1.cGravatar Ryan Schmidt12 days
[...]
 
 
AgeCommit messageAuthorFilesLines
2026-05-12include/serno.h.SH: correct check for git directory•••Commit 6ba61b33f7ec557c02c1 split this logic up from the top level Makefile.am but then failed to adjust the path to the directory in the check The result is that all builds now use a datecode of 0 and a revision of "unknown" amdj/autotools-version-fixGravatar Aaron Jones1-1/+1
2026-05-11Add "bypass" capability to spamfilter•••A new flag ACT_BYPASS was added as a generic flag to bypass +u if set. Opers remain immune, both as senders and recipients, so that spamfilter cannot be abused to lock people out of managing filters, talking to services, etc. Three new configuration items were added to the general section of ircd.conf to control filter behaviour: - filter_sees_user_info: This replaces the old #defines for FILTER_NICK, FILTER_IDENT, and FILTER_HOST to determine whether the hostmask of the user is passed to the spamfilter or whether we pass a dummy *!*@*. - filter_bypass_all: If set, the new ACT_BYPASS can allow every filter action (DROP, KILL, ALARM) to bypass +u if set in conjunction with those flags. If unset, only the DROP action can bypass +u and ACT_BYPASS has no effect on other actions. - filter_exit_message: This is the quit reason displayed, to move it out of a #define (we still keep a define around for a default reason in case it is unspecified). If either filter_sees_user_info or filter_bypass_all are set, the VERSION command will display a new 'F' flag to indicate the ability for filter to spy on users. Gravatar Ryan Schmidt3-58/+167
2026-04-29Automatically rehash when modules change conf•••When loading a module that modifies config (add/remove conf items or top conf sections), we now queue a rehash operation so that new config can be immediately applied. A new rb_defer_once() function was added to deduplicate these rehash requests so that at most one rehash will occur regardless of how many modules change conf. Gravatar Ryan Schmidt7-5/+36
2026-04-29Add m_quarantine•••This extension module provides a new usermode (+q) and two commands that allow opers to set/unset that mode. The mode can be set either via ircd.conf (general::default_umodes or auth::umodes) or via the QUARANTINE command. When using the command, a reason is required which will be broadcast to all other opers via the snote. The quarantine will be automatically removed if the target opers up or logs into a services account, and opers and logged in users cannot be quarantined. The UNQUARNTINE command may additionally be used to remove the quarantine status from a user. Users cannot otherwise set or remove this usermode from themselves. The QUARANTINE and UNQUARANTINE commands require a new priv oper:quarantine. To support this, a new account_change hook was added to m_services and m_signon. This hook is fired whenever a user's services account changes (via logging in or logging out) from the SVSLOGIN, SIGNON, LOGIN, or SU services commands. It is **not** fired for SVSLOGIN on unknown (pre-registration) users. Documentation was updated for the new usermode, hook, and commands. Usermode help was alphabetized for consistency, a missing entry for helpops was added, and cloaking was moved to +x (since all modern cloaking modules use that mode instead) since I was touching the file anyway. Gravatar Ryan Schmidt11-54/+742
2026-04-09OpenSSL backend: Use nicer error strings for system errorsGravatar Aaron Jones1-0/+3
2026-04-09Add +reply client tag support•••We validate that the reply looks like a valid message id as generated by tag_message_id and, for channel messages, that the reply is going to the same channel as specified in the message id. Since tag values do not currently go through spamfilter, this is an easy-ish way to ensure that it cannot be used as a backchannel for spam. Gravatar Ryan Schmidt4-0/+147
2026-04-09Add +channel-context client tag•••The sender must be in the channel mentioned by the tag and must be able to send messages to that channel. Since this is a hint for clients to display the received PM in a channel buffer, having the ircd strip the tag when the sender would otherwise not be able to talk in the channel will help reduce confusion and make chanop actions more effective in reducing perceived in-channel issues. Gravatar Ryan Schmidt4-0/+92
2026-04-05Fix logfile checks•••- Initialize hooks before the main log file, because if we send a snote due to failing to open a logfile, that calls a hook. Attempting to call a hook before hooks are initialized will cause the ircd to segfault. - Skip access() check for the logfile itself and simply check the return value of fopen(). This fixes a TOCTTOU race where an access check succeeds but something causes the file to become inaccessible between access() and fopen(), preventing an appropriate error from being logged. Also makes my life easier with my custom SELinux policy for the ircd since access() checks for full-write access whereas my policy only allows append access for logfiles. Gravatar Ryan Schmidt2-13/+21
2026-04-05Fix copy/paste errorsGravatar Ryan Schmidt1-2/+2
2026-04-05Allow all ircd file paths to be customized•••The ban.db file as well as both MOTD files were in hardcoded locations. Add new config options to the main solanum binary to manipulate where these files are looked for. This should make it fully possible to run multiple solanum instances from the same directory side-by-side. Gravatar Ryan Schmidt2-1/+13
[...]
 
Clone
https://cgit.space/~irc/github.com/solanum-ircd/solanum.git
http://cgitspacea7m5fmo5stfwxkykfbrjcecevl6z3xm5u7nfppuiigqoeyd.onion/~irc/github.com/solanum-ircd/solanum.git
http://cgit.i2p/~irc/github.com/solanum-ircd/solanum.git
http://cgitiek6febqkrplowpeqssm6cur3fk6de76oajer7dqixw2pwkq.b32.i2p/~irc/github.com/solanum-ircd/solanum.git