solanum-vs-hackint-and-char.../modules
Aaron Jones a9505057c5 MODRESTART/MODRELOAD: Defer reloading more quickly
Commit 41390bfe5f 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 59ea3c6753 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 41390bfe5f to use the new deferral
mechanism introduced by commit 59ea3c6753 and do the
same for module reloads.
2023-11-20 14:01:33 +00:00
..
core MODRESTART/MODRELOAD: Defer reloading more quickly 2023-11-20 14:01:33 +00:00
cap_account_tag.c hook_fn casts were hiding UB (#265) 2021-08-19 20:09:40 -07:00
cap_server_time.c hook_fn casts were hiding UB (#265) 2021-08-19 20:09:40 -07:00
chm_nocolour.c hook_fn casts were hiding UB (#265) 2021-08-19 20:09:40 -07:00
chm_noctcp.c Apply cmode C to replies (#328) 2022-04-14 13:14:12 -07:00
m_accept.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_admin.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_alias.c hook_fn casts were hiding UB (#265) 2021-08-19 20:09:40 -07:00
m_away.c Replace most checks for +o with oper:general 2020-08-04 22:58:30 +01:00
m_cap.c Mailmap and copyright update for Ariadne 2021-06-01 12:40:02 -04:00
m_capab.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_certfp.c common.h: raison d'être is gone, so out it goes. 2016-03-23 09:33:56 -05:00
m_challenge.c modules/m_challenge.c: give a better error message for failure to find o:line 2023-11-06 14:47:16 +00:00
m_chghost.c Mailmap and copyright update for Ariadne 2021-06-01 12:40:02 -04:00
m_close.c m_close: remove dangling return [ci skip] 2016-03-09 01:45:01 -06:00
m_connect.c ircd: do not shadow internal openssl symbol "ssl_ok" (yeah, i know) 2016-03-19 00:57:32 -05:00
m_dline.c m_dline: make the private reason private 2021-07-13 23:38:59 +01:00
m_encap.c common.h: raison d'être is gone, so out it goes. 2016-03-23 09:33:56 -05:00
m_etrace.c global masktrace doesn't need to be an operspy action 2022-07-01 00:07:02 +01:00
m_grant.c Don't crash on receiving GRANT from a server 2022-11-22 03:33:35 -06:00
m_help.c cppcheck: fix various warnings/errors 2016-10-28 20:13:36 +01:00
m_info.c extensions/invite_notify: make the NOTICE optional, configurable 2023-11-08 13:12:49 +00:00
m_invite.c m_invite: send message tags (#173) 2021-06-05 15:57:03 +01:00
m_ison.c m_ison: Do not report unregistered connections 2020-06-26 20:36:43 +00:00
m_kline.c refuse opers setting an invalidly long k-line reason 2022-06-30 23:59:17 +01:00
m_knock.c Replace most checks for +o with oper:general 2020-08-04 22:58:30 +01:00
m_links.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_list.c m_list: fail on invalid parameters 2021-10-20 11:35:53 +01:00
m_lusers.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_map.c Normalize snprintf size to use sizeof where possible 2022-06-24 01:42:08 -04:00
m_monitor.c m_monitor: refactor to use multiline 2020-11-12 19:18:01 -05:00
m_motd.c m_motd: don't ratelimit with no server argument 2019-09-15 20:05:51 +01:00
m_names.c m_names: use ITER_COMM_CHANNELS 2021-10-17 17:36:53 +01:00
m_oper.c modules/m_oper.c: give a better error message for failure to find o:line 2023-11-06 14:47:16 +00:00
m_operspy.c common.h: raison d'être is gone, so out it goes. 2016-03-23 09:33:56 -05:00
m_pass.c m_pass: store unverified SID in preClient for use in m_server 2018-08-15 22:48:20 +01:00
m_ping.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_pong.c send "End of burst" snote to L_NETWIDE (#356) 2022-08-19 03:17:05 +01:00
m_post.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_privs.c Make privilegeset_privs more const 2021-03-01 15:45:03 +00:00
m_rehash.c Remove shared blocks 2020-11-01 04:20:44 +00:00
m_restart.c Remove shared blocks 2020-11-01 04:20:44 +00:00
m_resv.c Keep propagated bans in a dictionary, not a list 2021-06-08 21:57:43 +01:00
m_sasl.c m_sasl: Remove implicit abort on registration 2022-10-06 17:06:28 -04:00
m_scan.c Normalize snprintf size to use sizeof where possible 2022-06-24 01:42:08 -04:00
m_services.c client: refactor del_all_accepts to allow skipping own accept list 2023-11-06 17:31:44 +00:00
m_set.c SET SPANNUM: Fix incorrect > 0 check to be >= 0 2022-11-09 17:56:15 -06:00
m_signon.c Manage IsDynSpoof when effecting a (post-reg) SIGNON 2021-06-08 23:17:18 +01:00
m_snote.c Mailmap and copyright update for Ariadne 2021-06-01 12:40:02 -04:00
m_starttls.c Mailmap and copyright update for Ariadne 2021-06-01 12:40:02 -04:00
m_stats.c authd: fix crash/restart breaking DNSBL lookups (#394) 2023-01-11 01:28:32 +00:00
m_svinfo.c make more snotes L_NETWIDE 2020-11-08 14:30:41 -05:00
m_tb.c ircd: send tags on every message 2017-08-06 16:21:29 +01:00
m_testline.c Add description parameter to auth blocks (#327) 2022-04-14 14:39:45 -07:00
m_testmask.c common.h: raison d'être is gone, so out it goes. 2016-03-23 09:33:56 -05:00
m_tginfo.c common.h: raison d'être is gone, so out it goes. 2016-03-23 09:33:56 -05:00
m_time.c cppcheck: fix various warnings/errors 2016-10-28 20:13:36 +01:00
m_topic.c Cast time_t to long long when printing 2022-07-01 03:43:36 -04:00
m_trace.c Add umode +I to allow users to hide their idle time (#220) 2022-08-30 16:49:43 -04:00
m_unreject.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_user.c m_nick/m_sasl/m_user: restore check for mixing of client and server protocol 2018-08-15 22:48:21 +01:00
m_userhost.c m_userhost: hide user's own IP if iline spoofed 2021-06-13 18:26:49 +01:00
m_users.c Message handlers should return void. 2016-03-09 01:37:03 -06:00
m_version.c make VERSION not include sid (#118) 2021-04-10 15:19:27 +01:00
m_wallops.c wallops: require new oper:wallops right (#110) 2021-01-28 14:09:31 +00:00
m_who.c Add umode +I to allow users to hide their idle time (#220) 2022-08-30 16:49:43 -04:00
m_whois.c Replace RPL_WHOISTEXT(337) with RPL_WHOISSPECIAL(320) (#419) 2023-10-03 16:35:52 -07:00
m_whowas.c Replace most checks for +o with oper:general 2020-08-04 22:58:30 +01:00
m_xline.c Keep propagated bans in a dictionary, not a list 2021-06-08 21:57:43 +01:00
Makefile.am Remove Windows support 2021-07-30 14:17:47 -04:00
sno_routing.c hook_fn casts were hiding UB (#265) 2021-08-19 20:09:40 -07:00
um_callerid.c um_callerid: increase hook priority to restore +Rg behavior 2023-01-18 17:21:30 -05:00
um_regonlymsg.c um_regonlymsg: prevent unregistered users from NOTICEing +R users too 2022-08-24 17:16:39 -04:00