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
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
b65c5430f2
Refactor client flags.
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
Jason Volk
f5143fbf73
Add channel structure into namespace + remove related rb_banheaps.
2016-08-20 19:30:34 -07:00
Jason Volk
03660fc4b0
Refactor chmode into namespace.
...
She's still a bit of a mess.
2016-08-20 19:30:34 -07:00
Jason Volk
3f6d567285
ircd: Improve/refactor version.cc -> info.cc related.
2016-08-20 19:30:34 -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
a1ee5034a2
Organize fs/path related into namespace.
2016-08-19 22:39:34 -07:00
Jason Volk
90c9fe686e
ircd: Namespace and partially modernize ircd::cache.
2016-08-19 22:39:34 -07:00
Jason Volk
a71a4551ae
ircd: Insert into ircd:: namespace.
2016-08-13 02:43:42 -07:00
William Pitcock
1c77b054a8
parse: move cmd_dict to a std::set
2016-07-31 01:36:14 -05:00
Jason Volk
73297c988b
Preliminary defaults/paths namespacing.
...
The namespace is inline to mimic the C namespace for now.
2016-07-25 16:49:00 -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