0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-12-11 16:13:01 +01:00
Commit graph

281 commits

Author SHA1 Message Date
Jason Volk
05cc6ddf83 ircd::net: Move resolver service out to modules/s_resolver. 2018-09-30 20:18:32 -07:00
Jason Volk
5a627efaad ircd::net::dns: Move cache related out to modules/s_dns. 2018-09-30 20:18:32 -07:00
Jason Volk
6a646f1ba4 modules: Start an m_user module; add preliminary message highlight test. 2018-09-14 05:17:16 -07:00
Jason Volk
a806b2d60b modules/m_event: Add modules; move pretty() suite out of ircd:Ⓜ️:. 2018-09-04 20:27:30 -07:00
Jason Volk
61fade178e ircd::m/modules/key: Various reorg / modularization. 2018-08-17 12:51:49 -07:00
Jason Volk
4793545dc2 modules/s_listen: Improve various. 2018-08-17 12:51:48 -07:00
Jason Volk
15e44463c3 modules/client: Stub joined_groups to shutup Riot. 2018-06-17 21:34:03 -06:00
Jason Volk
9601dac9cc ircd: Consolidate stdinc.h and ircd.h and fix precompiled headers. 2018-06-15 16:13:18 -06:00
Jason Volk
b4e7bb062c modules: Rename root to webroot. 2018-06-12 01:00:14 -07:00
Jason Volk
eb603c22c1 modules: Add preliminary m_room_aliases protocol suite. 2018-06-12 01:00:14 -07:00
Jason Volk
cc0072df0e modules: Add preliminary m_room_canonical_alias protocol suite. 2018-06-12 01:00:14 -07:00
Jason Volk
8bd6cf05b0 modules/vm: Add preliminary vm fetch unit. 2018-06-03 10:02:19 -07:00
Jason Volk
b79494adb9 modules/federation: Implement event_auth endpoint. 2018-06-02 19:46:58 -07:00
Jason Volk
f41c50af5b Makefile: ld.gold arguments package. 2018-05-31 16:32:55 -07:00
Jason Volk
52767c836f modules/client: Stub search endpoint. 2018-05-29 04:01:36 -07:00
Jason Volk
b65ff7ea53 modules/m_room_history_visibility: Add preliminary stub. 2018-05-19 18:49:08 -07:00
Jason Volk
0839d929c8 modules: Rename s_state to m_room. 2018-05-19 18:49:07 -07:00
Jason Volk
902d48d702 modules/Makefile.am: Add missing s_state related. 2018-05-19 18:49:07 -07:00
Jason Volk
e2e8172bfd modules: Add join rules hook stub; remove remaining tmp_effects from vm. 2018-05-19 18:49:03 -07:00
Jason Volk
456f8e7ac1 ircd:Ⓜ️ Move vm eval definitions into module. 2018-05-06 22:28:17 -07:00
Jason Volk
49a2cddc45 modules: federation/federation library; move feds commands (prelim). 2018-04-27 18:02:42 -07:00
Jason Volk
db21df0c31 ircd: Move mapi.h into mods/. 2018-04-24 01:21:16 -07:00
Jason Volk
bfba0ada0c modules/media: Add preview_url stub-plus. 2018-04-23 00:47:03 -07:00
Jason Volk
f808a28664 ircd: Add m/m.h to stdinc.h 2018-04-22 16:22:02 -07:00
Jason Volk
a8b143d6c2 modules/media: Consolidate media modules for easier linkages. 2018-04-12 23:07:45 -07:00
Jason Volk
d4e35476a3 modules/client: Preliminary 6.2.3 /initialSync composite. 2018-04-10 13:15:19 -07:00
Jason Volk
257276d082 modules/federation: Add backfill_ids endpoint handler. 2018-04-04 22:54:59 -07:00
Jason Volk
ca75899407 modules/federation: Backfill. 2018-04-04 22:54:58 -07:00
Jason Volk
d2d6ba0f18 modules/federation: Add send_leave endpoint handler. 2018-04-03 23:34:10 -07:00
Jason Volk
4720431d72 modules/federation: Add make_leave endpoint handler. 2018-04-03 23:34:09 -07:00
Jason Volk
50911da57f modules/federation: Add state endpoint handler. 2018-04-03 23:34:09 -07:00
Jason Volk
dffef130db modules/federation: Add state_ids endpoint handler. 2018-04-03 23:34:09 -07:00
Jason Volk
b767aab018 modules/federation: Add send_join endpoint handler. 2018-04-03 23:34:09 -07:00
Jason Volk
60f983b953 modules/federation: Add make_join endpoint handler. 2018-04-03 23:34:09 -07:00
Jason Volk
66871bd598 modules/federation: Add invite endpoint; functional response w/o eval. 2018-04-02 23:20:50 -07:00
Jason Volk
bf127104f1 modules/federation: Add query endpoint; add profile handler. 2018-04-02 23:20:50 -07:00
Jason Volk
738eb0782e modules/m_room_member: Add preliminary type stub from hooks out of client/rooms/join. 2018-03-28 22:17:09 -07:00
Jason Volk
53d7e79c41 modules/m_room_create: Add preliminary type stub from the hooks out of client/createroom. 2018-03-28 22:17:09 -07:00
Jason Volk
28c7494acb modules/federation: Add get_groups_publicised stub to shut it up. 2018-03-28 01:29:58 -07:00
Jason Volk
065370c38a configure.ac: parameter package. 2018-03-24 03:19:16 -07:00
Jason Volk
f11c98db34 modules: Add m.receipt; edu handler stack frames. 2018-03-14 21:30:10 -07:00
Jason Volk
5a933ee713 modules/federation: Checkpoint preliminary sender. 2018-03-14 16:26:16 -07:00
Jason Volk
f0b5656fda ircd:Ⓜ️ Push user creation out to module. 2018-03-11 13:40:24 -07:00
Jason Volk
51fe770d74 modules: Add m_typing eval stub. 2018-03-08 10:08:38 -08:00
Jason Volk
143c867ad8 modules: Rename s_console back to console so it's not mapped by ircd:Ⓜ️:modules. 2018-03-06 07:50:14 -08:00
Jason Volk
c864a6b446 ircd:Ⓜ️ Move keys related into modules/key; keys into node's room; remaining keys.cc into m.cc. 2018-03-06 00:10:36 -08:00
Jason Volk
63614107f8 ircd:Ⓜ️ Introduce the node and the node::room. 2018-03-05 23:47:23 -08:00
Jason Volk
2dc94d7adc modules: Move js modules into js/ 2018-03-05 05:24:45 -08:00
Jason Volk
5c1cb57e9c modules: Reorg conf/console related; add s_control. 2018-03-05 05:24:45 -08:00
Jason Volk
e8fd7eebe0 modules/conf: Introduce the !conf room and the !control interface. 2018-03-02 08:02:21 -08:00
Jason Volk
10eb0b3216 modules/media: 11.7.1.4 Thumbnail; remote fetch. 2018-02-26 04:16:51 -08:00
Jason Volk
3d016b9e04 modules/client/rooms: Stub initialSync handler for room previews in Riot. 2018-02-25 04:19:37 -08:00
Jason Volk
bc7efd8bff modules/client: Stub publicised_groups endpoint. 2018-02-24 01:14:26 -08:00
Jason Volk
34d1ea4afc modules/client/user: Stub handler for 11.18.2.2 PUT rooms/account_data; fix parv check. 2018-02-21 16:57:41 -08:00
Jason Volk
d90f369c6d modules/client: Stub unstable thirdparty/protocols to quash Riot error. 2018-02-21 15:41:09 -08:00
Jason Volk
083397c03d modules/client/rooms: Stub the remaining room operation endpoints. 2018-02-21 15:22:04 -08:00
Jason Volk
754a9366fb modules/client/user: Stub openid/ openid/request_token. 2018-02-20 15:40:40 -08:00
Jason Volk
091efbdabe modules/client/directory: Stub user search endpoint. 2018-02-19 19:45:44 -08:00
Jason Volk
af47471830 modules/federation: Add version endpoint. 2018-02-19 16:51:28 -08:00
Jason Volk
74f1a835b9 modules: Minor Makefile cleanup. 2018-02-19 12:43:13 -08:00
Jason Volk
149db42d4e modules/client/rooms: 6.5.2.1 PUT redact. 2018-02-15 16:50:08 -08:00
Jason Volk
bfcfacfc50 modules/client: 11.9 Device Management (incomplete). 2018-02-14 22:07:01 -08:00
Jason Volk
24aac22e33 modules/client/account: Stub an account/3pid response. 2018-02-14 22:07:01 -08:00
Jason Volk
3dd792033b modules/client/account: 3.6.1 GET whoami 2018-02-14 22:06:20 -08:00
Jason Volk
575820d993 modules: Split client/account. 2018-02-14 21:49:46 -08:00
Jason Volk
d4e6e23804 modules: Split client/user. 2018-02-14 21:49:46 -08:00
Jason Volk
c45461d5f6 modules: Split modules/client/rooms; reorg Makefile. 2018-02-14 21:49:46 -08:00
Jason Volk
5f24883c1c modules: Add minimum viable stubs for errorless Riot load.
modules/client/pushrules: Stub arrays for errorless Riot load.
2018-02-12 19:30:44 -08:00
Jason Volk
44f8868598 modules: Add reloadable console module with library of command handlers. 2018-02-06 12:50:25 -08:00
Jason Volk
025e1d7c78 ircd:Ⓜ️ Move events database description and instance to libircd. 2018-02-05 21:24:36 -08:00
Jason Volk
fffea204b9 modules: Add preliminary federation/get_missing_events handler. 2018-01-23 16:35:28 -08:00
Jason Volk
ba3d1e7af4 modules: Add stub media/upload. 2017-12-24 21:54:59 -07:00
Jason Volk
80931e4e86 ircd:Ⓜ️ Split m.cc; distribute inits; modules: Checkpoint matrix. 2017-12-12 14:59:40 -07:00
Jason Volk
1a1a50f5f3 Checkpoint reorganization. 2017-11-30 12:30:19 -08:00
Jason Volk
4793e4906c ircd:Ⓜ️ Checkpoint matrix top-half / modules. 2017-11-30 11:23:44 -08:00
Jason Volk
f89d6f651c modules: Add preliminary federation and media directories. 2017-11-30 11:23:40 -08:00
Jason Volk
43e35786ce ircd: Move subsystem 'index header' into subsystem directories. 2017-10-19 01:38:03 -07:00
Jason Volk
20869309a2 Checkpoint matrix with preliminary federation client and keyserver related. 2017-10-03 04:27:15 -07:00
Jason Volk
01d7ec1560 modules: Various fixes; cleanup. 2017-10-03 04:27:13 -07:00
Jason Volk
babde26165 make: Minor cleanup. 2017-10-03 04:17:10 -07:00
Jason Volk
85b699c286 Various makefile cleanup. 2017-09-08 03:47:53 -07:00
Jason Volk
1cea631f60 ircd::m modules: Matrix reinterface checkpoint. 2017-09-08 03:47:53 -07:00
Jason Volk
fa41c1db5f ircd:Ⓜ️ Reorg location of database descriptions. 2017-08-23 15:52:14 -06:00
Jason Volk
caa6ed58e5 ircd: Makefile improvements. 2017-08-23 15:39:41 -06:00
Jason Volk
a3117391b5 ircd/modules: Preliminary matrix scaffold. 2017-08-23 15:10:28 -06:00
Jason Volk
a25143b035 charybdis/modules: Fix Makefile argument related. 2017-08-23 14:55:58 -06:00
Jason Volk
7ff04618c0 ircd;modules: Minor Makefile tweaks. 2017-04-04 16:10:29 -07:00
Jason Volk
b07169dd69 Update Makefile flags for libraries to show more linkage issues. 2017-03-30 16:04:20 -07:00
Jason Volk
8ef53f2640 ircd: Move and improve socket listener device. 2017-03-30 16:04:19 -07:00
Jason Volk
49c2a5361c ircd: Various fixes. 2017-03-13 14:43:27 -07:00
Jason Volk
b592b69b86 What is the Matrix? Control. 2017-03-10 17:51:18 -08:00
Jason Volk
8b0fe0318f gold linker. 2016-11-25 19:23:50 -08:00
Jason Volk
0d3ddb9bd7 [prelim] modules: Add js kernel. 2016-11-25 19:23:50 -08:00
Jason Volk
edbc19790e modules: Stub crypto module. 2016-11-25 19:23:50 -08:00
Jason Volk
eef5b78112 modules: Add stream interface object. 2016-11-25 19:23:50 -08:00
Jason Volk
63a6a82ea2 modules: Add assert object for Node.js style tests. 2016-11-25 19:23:50 -08:00
Jason Volk
848337a76b modules: Add net with Node.js compatible net.Socket / net.Server. 2016-11-25 19:23:50 -08:00
Jason Volk
7b4c06575f modules: Add DNS module with Node.js compatible lookup(). 2016-11-25 19:23:50 -08:00
Jason Volk
4fa9985399 modules: Add Events prototype. 2016-11-25 19:23:50 -08:00
Jason Volk
53f355e41d modules: Add preliminary console to support js-style console.log() et al. 2016-11-25 19:23:49 -08:00
Jason Volk
4127367a46 modules: Add preliminary "require" to load additional modules into js. 2016-11-25 19:23:49 -08:00
Jason Volk
67af461540 modules: Update future object to support async contracts. 2016-11-25 19:23:49 -08:00
Jason Volk
a4f55b4627 ircd::mods: Reorganize and distill interface. 2016-11-25 19:23:49 -08:00
Jason Volk
998724937c [temp] Checkpoint test. 2016-10-13 21:55:53 -07:00
Jason Volk
4ac4244876 Add m_host "HOST" command for DNS resolution. 2016-09-21 16:29:28 -07:00
Jason Volk
556ceba8a0 ircd: new client; start over. 2016-09-21 16:29:28 -07:00
Jason Volk
2742547826 Introduce modular configuration system. 2016-09-21 16:28:51 -07:00
Jason Volk
12c836dc6e Rip out libltdl. 2016-09-09 16:17:02 -07:00
Jason Volk
9d0a959bb5 MAPI IV. This iteration leverages the C++11 standardized RTTI.
* Simplifies the export declarations for module developers. While
MAPI III utilized a flexible key-value vector to eliminate positional
arguments in a header initializer, now the developer simply makes
a list of pointers to what they want to export for injection into
IRCd. Example:

mapi::header IRCD_MODULE
{
	"mymod",
	"My module adds a command, a hook, and a CLICAP",
	&my_cmdtab,
	&some_hook,
	&clicaptab
};

* Distributes the handlers for items passed to the above vector.
Anyone can add a type-handler to the module system from anywhere in IRCd
(and other modules?) When your type is encountered a handler is called
providing the symbol name to read out of the module. Example in parser.cc:

mods::add_loader<Message>([]
(mod &loading, const std::string &symbol)
{
	auto &msg(get<Message>(loading, symbol));
	add_command(msg.name, msg);
});
2016-09-09 16:17:01 -07:00
Jason Volk
06b84579e3 modules/extensions: LDFLAGS += --no-allow-shlib-undefined 2016-08-23 05:22:38 -07:00
Jason Volk
61b517ca3c Precompile and remove most include directives. Notes:
* To benefit from the precompiled-header (PCH) it MUST provide "the first C token."

Advantages:
Never worry about the include stack again. Remember, this means one less thing
for random module developers, community people learning C++, and new developers
to deal with. It should reduce the learning curve and barrier for participation.

Disadvantages:
Makes overall compilation a bit slower, especially without any additional
work to improve it again. There are several opportunities, places where the
PCH is probably being ignored, etc that can be addressed.
2016-08-20 19:30:33 -07:00
Jason Volk
4796bec441 Activate PCH for position independent code.
Cuts compilation time by 30%+
2016-07-25 00:54:38 -07:00
Jason Volk
404239eb60 Build system cleanup. 2016-07-22 19:46:28 -07:00
Jason Volk
834964c659 Convert IRCd to C++
Happy 28th birthday. You're all grown up.
2016-07-22 19:46:27 -07:00
Jason Volk
ac4dda1e67 Towards a leak-free repository.
Adds a Makefile target 'mrproper' though this only works on new versions of AC.
2016-07-21 20:51:02 -07:00
Jason Volk
ea53aab823 Refactor repository layout.
* librb is no longer a separately configured subproject.
* charybdis is now a standalone directory with a binary.
* Include path layout now requires a directory ircd/ rb/ etc.
2016-07-21 20:51:02 -07:00
Elizabeth Myers
7445ece1d1
Revert "Implement the netsplit batch type."
This needs more work, see
https://github.com/ircv3/ircv3-specifications/issues/253

This reverts commit 2373891299.
2016-04-16 11:05:00 -05:00
Elizabeth Myers
2373891299
Implement the netsplit batch type.
This also lays the groundwork for the netjoin batch type, but that isn't
implemented yet. I don't like how some of this is implemented but it'll
have to do for now...

Compile tested, needs more testing.
2016-04-15 16:50:43 -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
b663a8070f Move alias handling into a dedicated module.
Not yet tested, caveat emptor!

Closes #166
2016-04-06 07:27:50 -05:00
Elizabeth Myers
0ed0a9fe0a Move m_locops module to extensions.
Many networks do not use local ops and therefore should not be required
to have this around all the time.
2016-04-02 05:20:30 -05:00
Elizabeth Myers
fea4e2d2a8 modules: libircd depends on librb, so no need to include it.
This triggers multiple inclusion warnings on Solaris also.
2016-03-23 13:59:45 -05:00
William Pitcock
f2d5cea00a modules: remove explicit CPRIVMSG/CNOTICE, this has been obsolete for a long time 2016-03-10 02:13:43 -06:00
William Pitcock
c83f2f5e12 rename libratbox to librb, since its pretty modified anyway 2016-03-06 02:30:20 -06:00
William Pitcock
4bdf963cdc modules: add cap_server_time, adding server-time cap support 2016-02-27 02:31:38 -06:00
William Pitcock
815fbc146f modules/cap_account_tag: new module providing the account-tag cap as a proof of concept 2016-02-20 17:44:46 -06:00
William Pitcock
fe749d3709 ircd: implement GRANT subsystem based on ircd-seven 2016-01-11 23:02:03 -06:00
William Pitcock
a886cb82fb buildsystem: more LTDLINCL fixes 2016-01-08 06:57:45 -06:00
William Pitcock
ff12cc9479 rename src to ircd, libcore to libircd 2016-01-06 01:16:08 -06:00
William Pitcock
bc38c72ced buildsystem: build ircd itself as a library to allow removal of -undefined suppress on OS X 2016-01-05 21:31:21 -06:00
William Pitcock
c52df12552 buildsystem: convert to automake + libtool 2016-01-05 21:20:25 -06:00