aboutsummaryrefslogtreecommitdiffstats
Commit message (Expand)AuthorAgeFilesLines
* s->id probably won't be set by this point jess/filter-nickGravatar jesopo2024-02-021-2/+2
* comment here too why notGravatar jesopo2024-02-021-0/+1
* also run filters against pre-reg NICKGravatar jesopo2024-02-023-15/+75
* run spamfilters against NICKGravatar jesopo2024-02-012-0/+31
* 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
* Sort reps in CREDITS case insensitive alphabeticallyGravatar Tom Wesley2023-06-051-2/+2
* Replace libera reps with amdj and spbGravatar Tom Wesley2023-06-031-2/+2
* reference.conf: document `hide_opers`Gravatar David Schultz2023-05-181-0/+3
* m_shedding: user shedding module based on oftc-hybridGravatar David Schultz2023-05-184-0/+187
* doc/connecting-servers: update example atheme protocol module•••Atheme has had a protocol module designed specifically for Solanum for some time now that includes proper support for new IRCd features.Gravatar David Schultz2023-05-151-1/+1
* Add "automake" and "libtool" to the list of packages required for buildingGravatar jonesman2023-02-211-1/+1
* chmode: convert bants to a proper serial•••This way it increments for every change. It need not be a timestamp, as its actual value is not important. This fixes an issue where a ban could be set, hit, and cleared all in the same second, and the affected client would still be cached as banned because the bants hadn't actually changed. Gravatar Doug Freed2023-01-231-2/+2
* um_callerid: increase hook priority to restore +Rg behavior•••Before splitting things out into hooks, umode +Rg would only notify the recipient if the sender satisfied +R. This restores that behavior by making the +g hook happen after +R.Gravatar Doug Freed2023-01-181-2/+2
* ircd/authproc.c: avoid crash on lack of any configured DNSBLs•••Fixes fbc97166a6e455f5cccf Closes #396 Gravatar Aaron Jones2023-01-111-6/+9
* help/opers/: add HELP entry for DEHELPERGravatar Aaron Jones2023-01-111-0/+11
* authd: fix crash/restart breaking DNSBL lookups (#394)•••authd child processes are only told about configured DNSBLs when the configuration is being parsed. This is bad, because when authd crashes or is killed, IRCd will restart it, but will not tell it about any configured DNSBLs until IRCd is next rehashed. We already have a dictionary that stores configured DNSBLs (for hit statistics for `STATS n'), so store the additional needed fields in that structure, and loop over that dictionary's entries when authd is restarted, sending the fields just as if the configuration were being reloaded. Reported-By: @Unit193Gravatar Aaron Jones2023-01-114-20/+38
* strip_colour: Strip '\x11' (monospace) and '\x1e' (strikethrough)•••Also clarify the comment: this function strips more than just colours. Gravatar Tobias Geerinckx-Rice2023-01-031-1/+3
* send RPL_LOGGEDIN to target_p upon ENCAP SU (#308)Gravatar Jess Porter2022-12-231-0/+10
* Remove the unused COMPRESSED flag and stats handler•••- Null "compress" handler left as-is in newconf.c Gravatar JailBird2022-12-222-4/+0
* Don't crash on receiving GRANT from a serverGravatar Stephen Bennett2022-11-221-0/+6
* ssld: Remove unused zlib_ok variableGravatar JailBird2022-11-091-4/+2
* SET SPANNUM: Fix incorrect > 0 check to be >= 0Gravatar JailBird2022-11-091-1/+1