aboutsummaryrefslogtreecommitdiffstats
Commit message (Expand)AuthorAgeFilesLines
* Ignore certificate usage restrictions•••We only care about the certificate fingerprint; we don't care what CAs have to say about the certificates. ignore_purposeGravatar Eric Mertens2025-05-261-0/+1
* Improve UN/D/K/XLINE help filesGravatar Melissa Draper2025-05-216-30/+40
* Add dedicated hook data type for can_create_channel•••hook_data_can_create_channel includes the name of the channel being created, which is necessary for any non-trivial restriction of channel creation as well as sending correct error messages. The new hook data matches the layout of the previous hook data, taking advantage of a disused pointer field in hook_data_client_approval as used by callers of the hook (m_join). Gravatar daemoness2025-05-114-3/+11
* CI: Install python3 sphinx in docs CI•••Python2 is deadGravatar Doug Freed2025-02-251-1/+1
* CI: Fix docs CI after changesGravatar Doug Freed2025-02-251-1/+3
* GitHub CI Workflow: Bump OS and compiler versions (#447)•••* GitHub CI Workflow: Bump OS and compiler versions * CI: fix for clang 18/19 - Don't enable -Werror during the execution of ./configure and drop -Wunused-value from --enable-warnings - librb/src/crypt.c: remove old-style function decls - rb_dictionary: define type of arguments, fix callees - rb_radixtree: fix spurious out-of-bounds diagnostic Co-authored-by: Doug Freed <dwfreed@mtu.edu>Gravatar Aaron Jones2025-02-2510-64/+66
* GitHub Docs Workflow: Bump runner versionGravatar Aaron Jones2025-02-251-5/+7
* Update join and challenge.•••Reported by joerg on Libera. Only took 20 years for someone to notice. Gravatar alyx2025-02-122-3/+3
* Add max_autoconn to documentation•••7c7065b0 introduced class::max_autoconn configuration parameter. However, this parameter was never added to config.rst and the example config. This commits adds them there as well. Gravatar Marco Meier2025-02-112-3/+11
* Don't set the oper flags on client (#443)•••Remove unused OPER_FLAGS logic in favor new priv system. It had rotted over time and was overlapping with PINGSENTGravatar Eric Mertens2025-01-292-5/+0
* modules: remove unused spy code.Gravatar RealKindOne2024-07-245-146/+1
* m_stats: correct format specifiers and types•••These format specifiers were all wrong. Use the right ones. Musl time_t is always 64 bits, so promote all rb_current_time usage to 64 bits. Fixes #437Gravatar Doug Freed2024-07-241-26/+26
* Accept expired certificatesGravatar Eric Mertens2024-06-281-0/+1
* s_user: reject invalid usernames before anything else•••This way invalid characters in usernames only appear in this snote, and all other rejection snotes will always have clean usernames. Gravatar Doug Freed2024-06-151-26/+26
* s_user: sanitize username early•••This ensures we don't allow [ in usernames anywhere. This also adds the tilde early, which simplifies a lot of things, and fixes an issue with username K-Lines on IsNoTilde users. Gravatar Doug Freed2024-06-152-89/+51
* m_whois: restore original multi-prefix behavior•••The original behavior has existed since before git history, and has no known impact on clients that exist today. This reverts commit 746ced2Gravatar Doug Freed2024-06-121-1/+1
* Remove WebSocket supportGravatar Aaron Jones2024-06-1224-1882/+11
* Revert "Fix WHOIS reply not respecting a lack of the multi-prefix capability"•••A server handling a remote WHOIS cannot safely use IsCapable() to determine if the client has multi-prefix enabled or not. This is because client capabilities are not shared between servers; and the IsCapable() macro dereferences source_p->localClient which will be NULL if source_p is not on this server. Instead rework the commit to always pretend that multi-prefix is not enabled, to still respect the fact that multiple prefixes should not be returned in case a client does not have multi-prefix enabled. This reverts commit 4633665ad62bdfe26529 Gravatar Aaron Jones2024-06-111-1/+1
* Fix WHOIS reply not respecting a lack of the multi-prefix capability•••Prior to this commit, RPL_WHOISCHANNELS always contained all channel membership prefixes, even when the client had not enabled the multi-prefix capability. This behaviour predates available commit history. Other ircds only return the highest prefix, as prescribed by the RFCs. Gravatar JustAnotherArchivist2024-06-111-1/+1
* Fix small typo•••authdd -> authdGravatar Firepup6502024-04-131-1/+1
* m_starttls: advertise tls cap only if SSL is possibleGravatar Doug Freed2024-03-121-0/+7
* doc/reference.conf: document the auth::umodes configuration option•••Fixes: 4d8088c386c23049fcfe ("Allow auth{} to apply extra umodes") Gravatar Aaron Jones2024-01-161-0/+5
* MODRESTART/MODRELOAD: Defer reloading more quickly•••Commit 41390bfe5fa3895b8dee fixed a bug whereby the processing of a MODRESTART command could result in a crash. The approach taken in this fix was to defer the reloading of all modules so that the call stack does not contain functions located in modules that are being reloaded. It did this by scheduling a one-shot timer event for 1 second in the future, in the absense of any better deferral mechanism at the time. Timers are processed by the event loop, which is core to IRCd and cannot be reloaded. Commit 59ea3c6753e80d051b20 introduced a mechanism to defer the execution of a function until all events have been processed by the event loop, in order to fix a REHASH bug that could result in a crash due to closing and reopening listener sockets with a pending socket connection event to process after the REHASH was completed. Rework commit 41390bfe5fa3895b8dee to use the new deferral mechanism introduced by commit 59ea3c6753e80d051b20 and do the same for module reloads. Gravatar Aaron Jones2023-11-201-2/+2
* doc/reference.conf: document connect::flags sctpGravatar Aaron Jones2023-11-201-0/+1
* extensions/invite_notify: make the NOTICE optional, configurable•••This adds a configuration option that determines whether the NOTICE is sent to clients that do not support the IRCv3 invite-notify capability. Requested by LiberaChat MGM. Gravatar Aaron Jones2023-11-087-4/+23
* ircd/listener: return a fatal TLS alert for early rejected TLS clients•••This is in furtherance of commit 3fdf26aa19628d5e12a3 which added functionality to reply with a TLS record layer alert for D-Lined TLS clients. It turns out that there are other plaintext error messages in this same function that should receive the same treatment. Also move another error string to a variable and use a compile-time optimised-out strlen for it too, to use the same approach as an existing error string. Finally, use a different alert (internal_error) for the case where IRCd is simply unable to accept more connections. Gravatar Aaron Jones2023-11-073-20/+47
* client: refactor del_all_accepts to allow skipping own accept list•••This allows reusing this function for other uses that just need to remove this client from others' accept lists on nick change and not have duplicates of this code everywhere Gravatar Doug Freed2023-11-065-23/+19
* modules/m_oper.c: give a better error message for failure to find o:line•••The snotice sent to other opers can be misleading. For example, it will say host mismatch even if the host is correct but the username is wrong, or if the oper name given does not exist in the configuration. Gravatar Aaron Jones2023-11-061-2/+2
* modules/m_challenge.c: give a better error message for failure to find o:line•••The snotice sent to other opers can be misleading. For example, it will say host mismatch even if the host is correct but the username is wrong, or if the oper name given does not exist in the configuration. Gravatar Aaron Jones2023-11-061-2/+2
* modules/m_challenge.c: log correct mechanism•••I suspect this is a copy/paste omission when duplicating the code from modules/m_oper.c when it was created. Gravatar Aaron Jones2023-11-061-5/+5
* Replace free with rb_freeGravatar Eric Mertens2023-11-061-1/+1
* Delay rehashing until we're not processing events•••Fixes crash introduced by 0ab6dbbc651ddd1c26cb7baa6e6cf86890a4abd2. It's probably a regression since it defeats a system designed to stop this from happening, but I didn't dig through the history. rehash() closes listeners. If we happen to get a single epoll() result that wants to first rehash and then accept a connection, the epoll info will point to a freed rb_fde_t. Other selectors should have similar problems, but we didn't investigate that. rb_fde_ts are normally batched up and freed outside the event processing, but as of the above commit close_listeners() screws that up by closing pending FDs immediately in order to create new listeners. I think it might be a bit better to revert this behaviour and simply not close listeners if we are going to open new ones over them, but have opted for the smallest reasonable change I can think of. Helped-by: Eric Mertens <emertens@gmail.com> Gravatar Ed Kellett2023-11-064-9/+53
* Replace RPL_WHOISTEXT(337) with RPL_WHOISSPECIAL(320) (#419)•••Reasons: * 337 conflicts with other IRCds use as RPL_ENDOFINVITELIST * 320 is commonly used for extra human-readable informationGravatar Eric Mertens2023-10-033-7/+7
* document +M cmode (#417)Gravatar Svetlana T2023-08-292-0/+74
* Terminate last line in setfilter helpGravatar Mike Quin2023-08-071-1/+1
* Fix typoGravatar Mike Quin2023-08-071-1/+1
* Correct order of chunking and encoding steps.Gravatar Mike Quin2023-08-071-6/+7
* Describe database loading.Gravatar Mike Quin2023-08-071-0/+12
* Add documentation for extensions/filterGravatar Mike Quin2023-08-072-0/+73
* extensions/extb_extgecos: Fix breakage•••This commit returns $x's old behavior as long as the mask does not contain a #, otherwise it uses the new behavior that supports CIDR notation. This fixes `$x:*badword*` not matching realnames containing "badword". Gravatar TheDaemoness2023-07-041-6/+10
* Clarify messages when auspex users have hidden their own idle times•••Co-authored-by: Doug Freed <dwfreed@mtu.edu>Gravatar Stephen Bennett2023-07-011-13/+11
* prioritise telling opers that a auspexed target is +IGravatar jesopo2023-07-011-7/+12
* show opers a reasonable message when auspex allows them to see idle timeGravatar jesopo2023-07-011-5/+15
* Add ACCOUNTEXTBAN ISUPPORT token•••To support the draft IRCv3 spec: https://github.com/ircv3/ircv3-specifications/pull/464 Gravatar Valentin Lorentz2023-07-011-0/+3
* modules: quietly succeed at loading a module if already loaded•••This allows explicitly loading a module in the config so it's available for later config items that might need it, and skips the double load when main loads all modules, which would cause errors Gravatar Doug Freed2023-07-011-0/+4
* modules: clear module list and mod paths in init•••If main is called more than once (like in tests), everything is reinitialized except the loaded module list and module paths, so clear them too so that modules are loaded again and the path list is correct. Gravatar Doug Freed2023-07-011-0/+3
* support RSFNC indicating type of FNC (e.g. FORCE vs REGAIN) (#406)Gravatar Jess Porter2023-07-012-0/+15
* extensions/extb_extgecos: support CIDR masks in $x extbans (#414)•••This allows a channel operator to set a channel ban such as "$x:*!*@192.0.2.0/24#*web.libera.chat*" and have it function as intended. Closes solanum-ircd/solanum#26Gravatar Aaron Jones2023-07-011-5/+28
* Add extban type for unidentified connections (#411)•••* Add extension extb_guest This module provides an extban type that acts as a normal ban but only matches unidentified users. * Document extban g in help/opers/extban * extensions/extb_guest: support CIDR masks in $g extbans This allows a channel operator to set a channel ban such as "$g:*!*@192.0.2.0/24#*web.libera.chat*" and have it function as intended. --------- Co-authored-by: Aaron Jones <me@aaronmdjones.net>Gravatar TheDaemoness2023-07-014-0/+76
* Warn opers about unresponsive serversGravatar David Schultz2023-06-137-0/+53