0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-09 03:21:15 +01:00
Commit graph

748 commits

Author SHA1 Message Date
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
5994fa3f21 ircd: static_assertion for critical unsigned mode mask value. 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
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
ef1a01b752 Introduce the abstract mode_lease mechanism to acquire and release slots. 2016-08-28 01:48:25 -07:00
Jason Volk
248497505b Introduce the abstract mode table template. 2016-08-28 01:48:25 -07:00
Jason Volk
883dada3d4 ircd: Rename hostmask to mask; add pretty_mask() from chmode. 2016-08-27 20:57:36 -07:00
Jason Volk
8cca1190ec ircd: Deinline stringops.h 2016-08-27 20:57:36 -07:00
Jason Volk
e586d268fc ircd::util: Add microtime() util. 2016-08-25 21:48:16 -07:00
Jason Volk
4e8fd35341 ircd::util: Add enum for_each closure for conforming enums. 2016-08-25 20:43:40 -07:00
Jason Volk
004d60658b ircd: Remove unused patchlevel.h header. 2016-08-25 06:32:52 -07:00
Jason Volk
e4673b3fc0 ircd: Remove the restart.h header (temp merge into ircd.h). 2016-08-25 06:32:52 -07:00
Jason Volk
1f91909181 ircd: Remove unused ircd_linker.h header. 2016-08-25 06:27:20 -07:00
Jason Volk
3846579e59 ircd: Remove ircd_signals.h header (temp merge into ircd.h). 2016-08-25 06:27:10 -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
fdf396862b ircd: Move inline/stringops.h out of inline/ 2016-08-25 02:07:11 -07:00
Jason Volk
fa3d3badb7 ircd::rfc1459: Add less comparison for char pointer. 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
b85b33d668 ircd: Scaffold some fnv_hash overloads for now. 2016-08-25 02:07:11 -07:00
Jason Volk
9eaf1c80d1 ircd::client: Split client. 2016-08-25 02:07:11 -07:00
Jason Volk
f33b369609 Refactor umodes. 2016-08-23 15:25:09 -07:00
Jason Volk
f081f4b7cb ircd::client: Disallow copying client struct. 2016-08-23 05:22:38 -07:00
Jason Volk
b7cb55a58a ircd::client: Pop the cork. 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
3847a3e30a Add basic bitflag-enum operator relaxation utilities. 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
90093b82e6 Upgrade user struct. 2016-08-21 15:30:22 -07:00
Jason Volk
9a22cfd393 ircd::chan: Add some basic protocol ERR exceptions. 2016-08-21 15:30:22 -07:00
Jason Volk
68b8a83419 ircd: Reduce is_chanop_voiced(). 2016-08-21 15:30:22 -07:00
Jason Volk
a6dccc4419 ircd: Add ircd::err exception namespace for throwable protocol errors. 2016-08-21 15:30:22 -07:00
Jason Volk
fd4af9c02a Forward declare to prevent ltdl.h inclusion. 2016-08-20 20:39:31 -07:00
Jason Volk
9835d43977 Upgrade channels structure. 2016-08-20 20:39:29 -07:00
Jason Volk
271aa22aee ircd: Add rfc1459::less overload on string pointers. 2016-08-20 19:30:35 -07:00
Jason Volk
3be7557d53 ircd: Disable ircd_linker.h on _WIN32. 2016-08-20 19:30:35 -07:00
Jason Volk
5752be41b8 Upgrade channel membership lists. 2016-08-20 19:30:35 -07:00
Jason Volk
276cad4275 Upgrade the channel invite list. 2016-08-20 19:30:35 -07:00
Jason Volk
a84fe8a09b Upgrade bqeI channel lists. 2016-08-20 19:30:35 -07:00
Jason Volk
c5224c8142 ircd::chan: Add convenience operators for channel mode structure. 2016-08-20 19:30:35 -07:00
Jason Volk
4f7eeaa60c ircd: Add select preliminary inlines for future client refactor. 2016-08-20 19:30:35 -07:00
Jason Volk
125e3b21f2 ircd: Improve/rename channel name check related. 2016-08-20 19:30:34 -07:00
Jason Volk
7d44e271f7 Better names for some channel mode convenience former-macros. 2016-08-20 19:30:34 -07:00
Jason Volk
d064881b2d Upgrade deprecated std comparators. 2016-08-20 19:30:34 -07:00
Jason Volk
e1cccd482b Updates to match utilities. 2016-08-20 19:30:34 -07:00
Jason Volk
1e07182f3e Remove CheckEmpty() from macro scope. 2016-08-20 19:30:34 -07:00
Jason Volk
2352528ffb ircd: rename mask_match() to match_mask(). 2016-08-20 19:30:34 -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
f112111e51 Add rfc1459:: case compliance namespace. 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
1f11e88ea5 ircd: Add a place for imports into namespace ircd. 2016-08-20 19:30:33 -07:00
Jason Volk
60c044d78a Fix redundant/conflicting namespace labels. 2016-08-20 19:30:33 -07:00
Jason Volk
7405910c2e ircd: Add lex_cast/boost::lexical_cast util. 2016-08-20 19:30:33 -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
029a83a17d ircd: Update exception macro to ensure format string checks. 2016-08-20 19:30:32 -07:00
Jason Volk
a1ee5034a2 Organize fs/path related into namespace. 2016-08-19 22:39:34 -07:00
Jason Volk
43575fff5b Add compile-time expression num_of<> for conforming enums. 2016-08-19 22:39:34 -07:00
Jason Volk
dd270c9d78 Fix some typoed include guard/define names. 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
31328e4759 Add missing RAII scope util. 2016-08-19 22:39:34 -07:00
Jason Volk
a71a4551ae ircd: Insert into ircd:: namespace. 2016-08-13 02:43:42 -07:00
Jason Volk
0e62b5a91a Add PIC/PCH condition in stdinc.h. 2016-08-13 02:43:41 -07:00
Jason Volk
3dafbeaf21 ircd: Convert defaults to constexprs.
Also cleanup unused defaults.
Also move single-use defaults to a tighter scope.
2016-08-13 02:43:41 -07:00
Jason Volk
fb8792da3d ircd: Towards a comprehensive capability C -> C++ refactor. 2016-08-13 02:43:41 -07:00
Jason Volk
10946db85e Remove unused function prototype. 2016-08-12 17:02:37 -07:00
Jason Volk
f6199d5d12 Reduce redundant includes. 2016-08-12 16:41:40 -07:00
William Pitcock
09d19cbbd3 capability: clean up CAP_REQUIRED and CAP_ORPHANED flags, use bool variables instead 2016-07-31 18:39:19 -05:00
William Pitcock
e7a768ca22 capability: fix capability stats dumping 2016-07-31 18:10:31 -05:00
William Pitcock
d0a59d58a0 capability: major rewrite for C++ support.
- no rb_dictionary use anymore
- CapabilityIndex converted into a proper class
- proper RAII lifecycle management
2016-07-31 03:18:22 -05:00
William Pitcock
ddd9920f5b util: memory, not unique_ptr header :) 2016-07-31 02:14:37 -05:00
William Pitcock
6fb9a722a2 fix build on clang++ 3.8 2016-07-31 01:59:57 -05:00
William Pitcock
10ff2d192c alias: convert to RAII/std::string/etc, no more rb_dictionary use (ref #202) 2016-07-31 01:57:04 -05:00
William Pitcock
1c77b054a8 parse: move cmd_dict to a std::set 2016-07-31 01:36:14 -05:00
William Pitcock
c7135bdf9a cache: adopt proper RAII pattern 2016-07-31 01:03:05 -05:00
William Pitcock
1c813cee95 cache: rough conversion of help system to std::map (ref #202) 2016-07-30 22:13:29 -05:00
William Pitcock
d18e5dc54f util: add std::map helpers for using case-insensitive strings/irccmp strings 2016-07-30 21:54:48 -05:00
William Pitcock
12ef3b15d6 fs: use normal ETCDIR for now 2016-07-30 21:02:24 -05:00
William Pitcock
f9a4adc03b headers: make ircd namespace inline in more places 2016-07-30 20:52:41 -05:00
William Pitcock
d60c03c28f Revert "headers: don't use inline namespaces"
This reverts commit 51a75f00be.
2016-07-30 20:50:27 -05:00
William Pitcock
51a75f00be headers: don't use inline namespaces 2016-07-30 20:47:44 -05:00
Jason Volk
625fb277ca Add root exception + basic utilities. 2016-07-25 19:43:26 -07: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
d1edbc0e58 Complete the C++ linkage with flex/bison. 2016-07-25 00:54:38 -07:00
Jason Volk
78ad65f386 ircd/rb: Move some remaining macros to rb. 2016-07-24 21:15:47 -07:00
Jason Volk
1a8ed13747 ircd: Make Chm::mode_type unsigned long. 2016-07-22 19:46:28 -07:00
Jason Volk
e7e7f8ff9f Convert bison.
NOTE: This only has "C" linkage right now.
2016-07-22 19:46:27 -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
7cea4c784d ircd: Merge the defaults/ircd_defs stuff for now.
ircd/rb: Move some lowish level macros down to rb.
2016-07-21 20:51:02 -07:00
Jason Volk
ffb2f63850 ircd: newconf: Fix const correctness. 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