Commit graph

27 commits

Author SHA1 Message Date
Ed Kellett a6f63a829e
Innovation by sed 2020-10-15 15:52:41 +01:00
Aaron Jones 17dc265c9d
Merge pull request #329 from edk0/reload-by-path
Reload modules by path
2020-06-25 17:32:58 +00:00
Ed Kellett df7e3dabce
Reload modules by path 2020-06-02 16:17:26 +01:00
Ed Kellett 91b1278224
Implement hook priorities 2020-05-01 17:44:15 +01:00
Ed Kellett 7b6410135b
m_modules: make modreload work like restart
/modrestart used to be implemented as a normal command and could crash
when used remotely because it would reload m_encap, which was on the
call stack at the time. This was fixed in 41390bfe5f. However,
/modreload has exactly the same problem, so I'm giving it the
same treatment.

Incidentally: This bug was first discovered in ircd-seven, where the
`/mod*` commands themselves live in the core, so m_encap was the only way
the crash could happen (and it didn't most of the time, because m_encap
would only be moved if you got unlucky). But `/mod*` are in modules in
charybdis, so /modrestart would have unloaded the code it was in the
middle of executing. With that in mind, I'm not sure how it ever
appeared to work.
2019-11-17 18:01:51 +00:00
Ed Kellett 28cc8bb924
Deferred capability notifications from modules
Reloading modules sends CAP DEL followed by an immediate CAP NEW:

    :staberinde.local CAP * DEL :account-tag
    :staberinde.local CAP * NEW :account-tag

This isn't very nice. /modrestart is particularly bad. In order to avoid
doing this, we remember the capability set at the beginning of module
operations, compare that with the set afterwards, and report only the
differences with CAP {DEL,NEW}.
2019-09-07 14:59:33 +01:00
William Pitcock e55a9d6abc modules: serious cleanups 2016-06-18 00:52:16 -05:00
William Pitcock 92dad4831d modules: cleanups 2016-06-18 00:38:40 -05:00
Elizabeth Myers 78946542bb modules: move module loading/unloading commands to dedicated module.
There's no reason to really have these in the main ircd anymore, static
modules are dead and aren't coming back.

To ensure people don't do something hopelessly retarded, this is a core
module.
2016-04-07 04:00:25 -05:00
Elizabeth Myers aa483e55bd bool-ify modules stuff 2016-04-03 01:51:45 -05:00
Elizabeth Myers 9b8e9eb321 config.h delenda est 2016-03-19 19:14:26 -05:00
Elizabeth Myers eeabf33a7c Move module description headers to the top
This is cleaner.

Note this was broken out of a much larger piece of work I did, so if
there's any problems, I apologise!
2016-03-09 01:29:41 -06:00
Elizabeth Myers 81204be809 Add ircd serials to AV2. 2016-03-07 18:10:22 -06:00
William Pitcock b7e4fcb7a7 modules: AV2: use unsigned int for capability IDs instead of signed int 2016-03-07 00:13:54 -06:00
Elizabeth Myers 216d70e91d modules: tag origin at load time. 2016-03-06 18:57:05 -06:00
Elizabeth Myers c63aeb44e9 modules: add origin field to V2 2016-03-06 17:52:49 -06:00
Elizabeth Myers 0eb7d9c02c modules: add description field 2016-03-06 17:14:31 -06:00
Elizabeth Myers 7b075a7610 modules: whoops, forgot one tiny thing 2016-03-06 17:04:02 -06:00
Elizabeth Myers 8e9c6a7590 modules: add new MAPI V2
MAPI V1 is still supported for legacy modules, but it is highly
recommended to update to MAPI V2. It includes support for capability
tables, module descriptions, and implicit versions.
2016-03-06 16:53:03 -06:00
Elizabeth Myers cbeab4bc34 Remove $Id tags from everything.
These are obsolete and none have changed since 10 years gao...
2016-03-06 02:47:27 -06:00
William Pitcock 2a19fc3f57 general: remove last vestiges of static modules support (this hasn't ever actually worked...) 2016-01-06 01:28:20 -06:00
William Pitcock f272e7abc7 modules: use libltdl to load the modules 2016-01-05 21:39:09 -06:00
Jilles Tjoelker 26c6ac3dc7 Simplify module path list, removing strcpy use. 2014-02-23 23:47:27 +01:00
Jilles Tjoelker d74fa5b502 Prefer PATH_MAX to non-standard MAXPATHLEN. 2011-10-28 16:45:18 +02:00
Valeriy Yatsko b7a689d1e5 Remove irc_basename, replace it with rb_basename from libratbox. 2008-12-03 02:59:13 +03:00
Valery Yatsko 81af5bcb39 libcharybdis includes gone. 2008-04-02 02:39:19 +04:00
nenolod 212380e3f4 [svn] - the new plan:
+ branches/release-2.1 -> 2.2 base
  + 3.0 -> branches/cxxconversion
  + backport some immediate 3.0 functionality for 2.2
  + other stuff
2007-01-24 22:40:21 -08:00