Jason Volk
847cb12d35
ircd: Add preliminary u::id struct.
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
a4e810d1c8
ircd::util: Prevent scope copying / minor cleanup.
2016-09-21 16:29:28 -07:00
Jason Volk
5b607b5b1f
configure.ac: Add __int128 support.
2016-09-21 16:29:28 -07:00
Jason Volk
a023048419
ircd::util: Add weak typedef util.
2016-09-21 16:29:28 -07:00
Jason Volk
59982cff43
ircd: Add utils for manipulating boost iov's.
2016-09-21 16:29:28 -07:00
Jason Volk
4f6b56c3af
ircd::util: Add std::chrono timer for benching.
2016-09-21 16:29:28 -07:00
Jason Volk
eb1d8fd8e6
ircd: Add convenience to test if line has a param number.
2016-09-21 16:29:28 -07:00
Jason Volk
9d558e5eb4
ircd: Rename cmd.h/cc files to cmds.h/.cc
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
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
0dbb0d4af5
ircd::util: Split lex_cast into header (otherwise the ifdef will never be true).
2016-09-21 16:28:52 -07:00
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
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
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
9275429ee1
Replace command system.
2016-09-09 16:17:36 -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
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
22587f465d
ircd::util: Make the flag enum operators constexpr.
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
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
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
abf1a5c598
rb: typedef `uint' if necessary.
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