0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-08-18 07:34:41 +02:00
Commit graph

878 commits

Author SHA1 Message Date
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 f1c5257201 modules: Add initial: versions, register, login. 2017-03-30 16:03:41 -07:00
Jason Volk c9ddf4f6ab ircd: Add lex_cast wrapper interface; various cleanup. 2017-03-14 15:03:15 -07:00
Jason Volk 472ee2c648 ircd: HTTP interface function-objects et al. 2017-03-13 18:44:00 -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 b8f5366f52 ircd::js: Improve trap callback arguments; add this value. 2016-11-13 16:34:00 -08:00
Jason Volk edd77d2265 ircd::js: Add asynchronous state and completion target mechanism. 2016-11-13 16:33:22 -08:00
Jason Volk 2f645941a8 ircd::ctx: Move ctx headers into directory. 2016-11-13 16:29:45 -08:00
Jason Volk 998724937c [temp] Checkpoint test. 2016-10-13 21:55:53 -07:00
Jason Volk 757d7e10a8 [temp] checkpoint some crap which isn't going to stick. 2016-09-27 17:29:06 -07:00
Jason Volk d8d2fe1564 ircd: Add scope 'life_guard' util for references in reentrant contexts. 2016-09-22 16:18:31 -07:00
Jason Volk fcd410d656 ircd::client: Add timer logic to client socket/io.
Note: Not sure if I like two reference counters for each client,
ideally, but we'll see where it goes after abstractions.
2016-09-21 16:29:30 -07:00
Jason Volk 26a3cd8441 Preliminary new client. Reorg/renames for ircd::client struct symbol. 2016-09-21 16:29:29 -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 5b55e60015 Add P-Line listener module. 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 9275429ee1 Replace command system. 2016-09-09 16:17:36 -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 3ebde4ab50 Convert umodes to mode_lease mechanism. 2016-09-09 16:17:01 -07:00
Jason Volk 127378b57c Refactor logger. 2016-09-09 16:17:00 -07:00
Jason Volk 052a6c8d22 Refactor snomask. 2016-08-28 01:48:25 -07:00
Jason Volk 21cfd2eefd ircd: Rename newconf name conflict. 2016-08-26 08:50:11 -07:00
Jason Volk d9e90e8937 ircd::cache: Convert send function arguments client* -> client& 2016-08-25 04:57:23 -07:00
Jason Volk 5f79420c29 Refactor isupport. 2016-08-25 03:01:45 -07:00
Jason Volk 9c16de2d41 Refactor whowas. 2016-08-25 02:34:28 -07:00
Jason Volk 5f218cdbb2 Refactor scache. 2016-08-25 02:07:11 -07:00
Jason Volk 3e26e7ab44 ircd: Move tgchange related into namespace. 2016-08-25 02:07:11 -07:00
Jason Volk f33b369609 Refactor umodes. 2016-08-23 15:25:09 -07:00
Jason Volk 06b84579e3 modules/extensions: LDFLAGS += --no-allow-shlib-undefined 2016-08-23 05:22:38 -07:00
Jason Volk b65c5430f2 Refactor client flags. 2016-08-23 05:22:38 -07:00
Jason Volk ab9a8e5c04 Convert all client handler arguments to reference type. 2016-08-23 05:22:38 -07:00
Jason Volk dd9124b687 Preliminary Client refactor.
Add client to ircd::client:: namespace.

Also move former struct User and struct Server into client.cc as
opaque structure demo.
2016-08-22 15:56:12 -07:00