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

3560 commits

Author SHA1 Message Date
Jason Volk f71a7a5fb9 ircd::rfc1459: Reorganize grammar for better reuse. Add tape parser. 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 0f3ef3204b Add libircd linkage to the external daemons.
Something has been introduced to the headers requiring this linkage,
possibly an abstract virtual class that might not be committed yet.
Either way, this linkage for these daemons is inevitable, so...
2016-09-21 16:28:51 -07:00
Jason Volk cd92e5ed91 ircd: Split cmd.h to line.h 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 f25cb78588 ircd: Enumerate non-standard but ubiquitous mIRC colors. 2016-09-21 16:28:51 -07:00
Jason Volk c5ce56dfe9 charybdis: Add SIGHUP support. 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 0115433a84 Convert the console to a context. 2016-09-21 16:28:51 -07:00
Jason Volk 2742547826 Introduce modular configuration system. 2016-09-21 16:28:51 -07:00
Jason Volk d2bb8cd8a7 ircd::ctx: Add primary features to context. 2016-09-21 16:28:49 -07:00
Jason Volk 249ba02faa Introduce userspace contexts. 2016-09-09 16:17:36 -07:00
Jason Volk 6674648590 ircd::util: Add util for template based nothrow overloading. 2016-09-09 16:17:36 -07:00
Jason Volk 88a15924ed ircd::log: Add console_quiet to suppress log messages to console. 2016-09-09 16:17:36 -07:00
Jason Volk cead127c73 ircd::rfc1459: Adjust grammar to allow 'empty message' of "\r\n" 2016-09-09 16:17:36 -07:00
Jason Volk 9275429ee1 Replace command system. 2016-09-09 16:17:36 -07:00
Jason Volk 46d992d3a0 ircd::log: Connect the -debug command line switch to DEBUG facility. 2016-09-09 16:17:34 -07:00
Jason Volk 7ae8449078 ircd::util: Add util to output the sizeof() something at compile time.
This produces an error which stops compilation, but the result of sizeof()
is given in the error message.
2016-09-09 16:17:03 -07:00
Jason Volk 8eeb6af31f ircd::util: Define user literals for space units. 2016-09-09 16:17:03 -07:00
Jason Volk 94acd49766 ircd::util: Obligatory bernstein hash. 2016-09-09 16:17:03 -07:00
Jason Volk 55d3b7ec0c ircd::util: Add logical not convenience for std::string (in our ns). 2016-09-09 16:17:03 -07:00
Jason Volk ae71d5eabb ircd::modules: Search for module with automated path suffix. 2016-09-09 16:17:03 -07:00
Jason Volk 68a1d161b9 mapi: Add alternate simple constructor. 2016-09-09 16:17:03 -07:00
Jason Volk db3d770b9d ircd::rfc1459: Introduce formal grammar. 2016-09-09 16:17:03 -07:00
Jason Volk 7bc7d37052 ircd::util: Add string() convenience to 'to_string' an object stream. 2016-09-09 16:17:03 -07:00
Jason Volk f446081021 ircd::rfc1459: Add util to build string of characters by attribute. 2016-09-09 16:17:03 -07:00
Jason Volk 9e027b2212 configure.ac: Clarify specific spirit headers (avoid deprecation for spirit.hpp) 2016-09-09 16:17:03 -07:00
Jason Volk 22587f465d ircd::util: Make the flag enum operators constexpr. 2016-09-09 16:17:02 -07:00
Jason Volk 8c537288d1 charybdis: Add -cmd option to drop a command prompt immediately after init. 2016-09-09 16:17:02 -07:00
Jason Volk f076b33724 ircd: Trivial type clarifications in rfc1459. 2016-09-09 16:17:02 -07:00
Jason Volk 2c854124af ircd::conf: Add newconf to oldconf translation. 2016-09-09 16:17:02 -07:00
Jason Volk 3e1bf93a22 ircd: Move reconstruct_parv() from parse.cc to stringops.cc 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 edd8fa2ab0 Chase the Bison off a cliff.
---<<|<᚜<᚜᚜᚜᚜-
2016-09-09 16:17:02 -07:00
Jason Volk 1df1545a3c configure.ac: Support boost::spirit parser framework. 2016-09-09 16:17:02 -07:00
Jason Volk 12c836dc6e Rip out libltdl. 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 baa60ed253 ircd: Add booltype to getopts parser. 2016-09-09 16:17:02 -07:00
Jason Volk 4b9dc5bff4 ircd: Populate path:: with boost::filesystem wrapping. 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 4399c1e2c3 ircd: Populate stringops with some general utils. 2016-09-09 16:17:01 -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 638db81e09 configure.ac: Support boost::filesystem / boost::dll. 2016-09-09 16:17:01 -07:00
Jason Volk 5994fa3f21 ircd: static_assertion for critical unsigned mode mask value. 2016-09-09 16:17:01 -07:00
Jason Volk 3589a763e8 extensions: Apply mode_lease to snomask extensions. 2016-09-09 16:17:01 -07:00
Jason Volk e052b0ed06 ircd: Reuse umode template code here and there. 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