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 Schmidt13 days
[...]
 
 
AgeCommit messageAuthorFilesLines
2026-03-22Unify the preprocessor macro for OpenSSL support•••Commit 9a1ee1b64ed660164197 introduced support for building IRCd with Meson. It defines the "HAVE_OPENSSL" preprocessor macro for both IRCd and librb. While librb does use that macro, IRCd unfortunately uses only the "HAVE_LIBCRYPTO" macro instead, set implicitly by AC_CHECK_LIB from autotools. Make the autotools build system define HAVE_OPENSSL (to unify IRCd with librb) and change IRCd to use that. amdj/unify-openssl-macroGravatar Aaron Jones8-19/+21
2026-03-22Tidy up module loading code•••The existing code had several defects: - Core module file names were hardcoded, while autoloaded non- core module filenames were not. Code that loaded core modules had a different but in some places duplicated structure to the code that loaded autoloaded modules. - Module loading for autoloaded modules happened in dentry order, making it unpredictable from one server to the next, or even across instances of `make install` on the same server. - Module loading for autoloaded modules did not verify that the dentry was a file before trying to load it. - An IRCd start (or a conftest) only printed lines about loading modules mentioned in the configuration file. - The configuration file was parsed before loading core and autoloaded modules, meaning any modules specified in the configuration file would be loaded first. - Once a module was loaded, it was added to the head of the module list, making MODLIST show them in reverse loaded order (newest (re)loaded modules at the top of the list). These are addressed as follows: - We now scan the core and autoload module directories and use this to determine which modules to load. - We now sort the dentries according to their filename before iterating them to load them, making module load order finally deterministic. - We now test if a dentry is actually a file before trying to load it. - We now print a message to the console (if running in foreground or conftest mode) when loading any module, including core and autoloaded modules. - The message printed to the console now has the IRCd module directory prefix stripped from it if it matches. - The configuration file is now parsed after loading core and autoload modules. - The modules are added to the module list in the order that they are loaded. This now makes MODLIST show the order that modules were (re)loaded in. Modifications to two modules are part of this effort: - The autoload module `m_alias` relied upon the alias dict not being NULL when loaded, but this is only the case after the configuration file has been parsed. The module already had a "rehash" hook to destroy all existing aliases and create new ones, so we can just make the module do nothing on load (remove its modinit function) and change it to use the "conf_read_end" hook instead of the "rehash" hook, and it will still create aliases after the configuration file is subsequently parsed. With this modification, there are now no in-tree consumers of the "rehash" hook. - The autoload module `m_services` iterated `service_list` upon loading it, which will now be empty (a no-op) since the module is loaded before configuration file is parsed. This module too handles the configuration file being parsed with a "conf_read_end" hook and takes the appropriate action, so we can just remove this code from its modinit function. All other modules' modinit functions have been audited for behaviour like this; there was nothing of note. Gravatar Aaron Jones6-83/+138
2026-03-22extensions/invite_notify: don't pass string to macro•••The macro does not use this parameter but nevertheless this is the only module in the tree to pass a string to it, and if a future macro were to use it, it could easily stringify the name by using the # preprocessor operator. Gravatar Aaron Jones1-1/+1
2026-03-19Add no-implicit-names client capability•••This has been recently ratified and suppresses NAMES output during channel joins when enabled, providing for a decent chunk of bandwidth savings. Gravatar Ryan Schmidt4-2/+7
2026-03-17build: add Meson buildsystemGravatar Valentin Lorentz18-11/+1095
2026-03-17modules: drop unnecessary link flagGravatar Valentin Lorentz1-1/+0
2026-03-17build: split help index generation into a scriptGravatar Valentin Lorentz2-45/+47
2026-03-17librb: drop unnecessary configure checksGravatar Valentin Lorentz1-2/+0
2026-03-17librb: drop pkg-config supportGravatar Valentin Lorentz3-19/+1
2026-03-17librb: modernize version.c generationGravatar Valentin Lorentz2-62/+56
[...]
 
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