| Branch | Commit message | Author | Age |
| amdj/autotools-version-fix | include/serno.h.SH: correct check for git directory | Aaron Jones | 3 months |
| amdj/fix-buildsys-headers | Clean up include/stdinc.h and librb/include/rb_lib.h | Aaron Jones | 3 months |
| amdj/list-memleak | Merge branch 'main' into amdj/list-memleak | Doug Freed | 7 weeks |
| amdj/meson-generation-builddate | Meson: Decouple creation and generation data from version | Aaron Jones | 4 weeks |
| amdj/modules | Tidy up module loading code | Aaron Jones | 5 months |
| amdj/openssl-strerror | OpenSSL backend: Use nicer error strings for system errors | Aaron Jones | 4 months |
| amdj/unify-openssl-macro | Unify the preprocessor macro for OpenSSL support | Aaron Jones | 5 months |
| dwfreed/meson-rebased | build: add Meson buildsystem | Valentin Lorentz | 5 months |
| dwfreed/rm-rf-autotools | build: remove autotools buildsystem | Doug Freed | 4 months |
| main | Only init solanum once in tests/sasl_abort1.c | Ryan Schmidt | 12 days |
| [...] |
| |
| |
| Age | Commit message | Author | Files | Lines |
| 2026-05-12 | include/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-fix | Aaron Jones | 1 | -1/+1 |
| 2026-05-11 | Add "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.
| Ryan Schmidt | 3 | -58/+167 |
| 2026-04-29 | Automatically 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.
| Ryan Schmidt | 7 | -5/+36 |
| 2026-04-29 | Add 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.
| Ryan Schmidt | 11 | -54/+742 |
| 2026-04-09 | OpenSSL backend: Use nicer error strings for system errors | Aaron Jones | 1 | -0/+3 |
| 2026-04-09 | Add +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.
| Ryan Schmidt | 4 | -0/+147 |
| 2026-04-09 | Add +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.
| Ryan Schmidt | 4 | -0/+92 |
| 2026-04-05 | Fix 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.
| Ryan Schmidt | 2 | -13/+21 |
| 2026-04-05 | Fix copy/paste errors | Ryan Schmidt | 1 | -2/+2 |
| 2026-04-05 | Allow 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.
| Ryan Schmidt | 2 | -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 |