0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-25 05:18:23 +02:00
Commit graph

65 commits

Author SHA1 Message Date
Jason Volk 84d7746165 ircd: Add net; various asio related. 2017-10-03 04:17:10 -07:00
Jason Volk 816b5125b2 ircd: Improve/cleanup ircd::init()/ircd::stop() related. 2017-10-03 04:17:07 -07:00
Jason Volk d4508e157f ircd:Ⓜ️ Deduplicate user related in m::user. Update various resource related. 2017-09-24 20:48:53 -07:00
Jason Volk b207b9e909 ircd: Rename ircd::scope to ircd::unwind. 2017-09-24 18:16:41 -07:00
Jason Volk 971496817b Minor fixes / cleanup. 2017-09-24 18:16:40 -07:00
Jason Volk 7f548cee1c ircd: Make asio header; comments; add special continuation for yielding to asio. 2017-09-24 18:16:39 -07:00
Jason Volk a12309be44 ircd: Log version information on startup. 2017-09-24 18:16:37 -07:00
Jason Volk 214e5e7107 Compiler recommended to use std::terminate() rather than throw into noexcept. 2017-09-24 18:16:34 -07:00
Jason Volk 6cd58b0d6a ircd: Update various comments / minor cleanup. 2017-09-24 18:16:32 -07:00
Jason Volk 1cea631f60 ircd::m modules: Matrix reinterface checkpoint. 2017-09-08 03:47:53 -07:00
Jason Volk 7baac31cc7 ircd: Add main init for ircd::db. 2017-09-08 03:47:52 -07:00
Jason Volk 48148c640c ircd: Add std::random subsystem and utils. 2017-08-23 15:52:15 -06:00
Jason Volk 10472684f2 ircd: Cleanup client/ircd main. Fixes for exit notification. 2017-08-23 15:50:37 -06:00
Jason Volk 6e44074bad ircd: Various client / listener / main related. 2017-08-23 15:13:57 -06:00
Jason Volk 8fdc6a4794 fixup! ircd: Minor cleanup. 2017-04-04 16:10:29 -07:00
Jason Volk 8ef53f2640 ircd: Move and improve socket listener device. 2017-03-30 16:04:19 -07:00
Jason Volk 6a0e5e4de5 ircd::mods: Add sym_ptr/sym_ref to link symbols with a typed object. 2017-03-20 21:29:29 -07:00
Jason Volk 26f59954af ircd: Fix seed pun. 2017-03-13 21:14:40 -07:00
Jason Volk b592b69b86 What is the Matrix? Control. 2017-03-10 17:51:18 -08:00
Jason Volk be48466ef3 fixup! [temp] Checkpoint test. 2016-11-13 16:32:38 -08:00
Jason Volk ae40f9c016 ircd: Move all signal handling to charybdis executable. 2016-11-13 16:32:37 -08:00
Jason Volk 2f645941a8 ircd::ctx: Move ctx headers into directory. 2016-11-13 16:29:45 -08:00
Jason Volk 95068c7d06 Introduce Mozilla SpiderMonkey. 2016-10-25 01:55:50 -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 bbd73746c3 ircd::ctx: Abstract the db::work subsystem into ctx::ole OffLoad Engine (OLE). 2016-09-27 17:28:24 -07:00
Jason Volk 5df4bf6da2 ircd::db: Add database interface. Support RocksDB. 2016-09-27 02:20:42 -07:00
Jason Volk 284bad47e9 ircd: Add mods::init; a subsystem init/fini singleton held by ircd::main(). 2016-09-24 16:40:02 -07:00
Jason Volk 417594d0cd mapi: Add check for "stuck modules" and display warning for developer. 2016-09-21 16:29:30 -07:00
Jason Volk 1fcb08d261 ircd: Post main exit cb to ios to keep the user off our stack; improve main comments. 2016-09-21 16:29:29 -07:00
Jason Volk 6252d6f11e ircd: Remove cruft which boost abstracts away. 2016-09-21 16:29:29 -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 556ceba8a0 ircd: new client; start over. 2016-09-21 16:29:28 -07:00
Jason Volk 89c2e74f3b ircd::ctx: Improve context interface. 2016-09-21 16:29:26 -07:00
Jason Volk 090def32d2 ircd::mods: Add unload() to unload all modules. 2016-09-21 16:28:52 -07:00
Jason Volk 07177e8a6b ircd/charybdis: Add at_main_exit() callback to indicate IRCd has finished
to the host program. Without any indication, the outer program's handlers
will continue to keep ios.run() from returning.
2016-09-21 16:28:51 -07:00
Jason Volk aca6eefcd9 ircd: Improve exception reporting on newconf parsing. 2016-09-21 16:28:51 -07:00
Jason Volk 45c37f602e ircd: Establish main context; primary flow. 2016-09-21 16:28:51 -07:00
Jason Volk 9275429ee1 Replace command system. 2016-09-09 16:17:36 -07:00
Jason Volk 2c854124af ircd::conf: Add newconf to oldconf translation. 2016-09-09 16:17:02 -07:00
Jason Volk 670990a215 Upgrade newconf parser to boost::spirit. 2016-09-09 16:17:02 -07:00
Jason Volk 5aeeb73e20 ircd: Introduce ASIO; stub for signal handling and console UI. 2016-09-09 16:17:02 -07:00
Jason Volk 4b62a704bf charybdis: Establish main entry point. 2016-09-09 16:17:02 -07:00
Jason Volk a8ed3d2dc2 Simplify ircd::fs::path related to ircd::path. 2016-09-09 16:17:01 -07:00
Jason Volk 102c15d768 ircd: Remove fs path relocations for windows. 2016-09-09 16:17:01 -07:00
Jason Volk 153b017358 ircd: Remove pidfile. 2016-09-09 16:17:01 -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 9d87313756 ircd: Hose fork()/close(fd) related. 2016-08-25 22:02:19 -07:00