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
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
e78103e23b
rb: define ulong to complement uint.
2016-08-20 19:30:33 -07:00
Jason Volk
13a18ace2b
rb: Remove defines/includes related to booltype for __cplusplus.
2016-08-20 19:30:33 -07:00
Jason Volk
d9abfc3955
Include time and iomanip standard library headers.
2016-08-20 19:30:33 -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
fc4af83fdf
Remove __unused macro.
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
7d3e1e49a5
configure.ac: Fix CPPDEFINE error and improve boost check.
...
Require at least 1.56 for now... Testing of older versions is
needed once librb is replaced and we know what's needed.
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
d7eb77c61b
rb: import formatter library
2016-07-31 17:55:43 -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
4796bec441
Activate PCH for position independent code.
...
Cuts compilation time by 30%+
2016-07-25 00:54:38 -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
02119375b1
Add --disable-pch configuration option.
2016-07-23 19:40:18 -07:00
Jason Volk
31f4d0d699
Fix rb.h.gch compilation flags.
2016-07-23 19:40:18 -07:00
Jason Volk
404239eb60
Build system cleanup.
2016-07-22 19:46:28 -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
Jason Volk
007c6bf496
ircd/librb: Move "AFP" macro from ircd to rb.
2016-07-19 22:38:56 -07:00
Jason Volk
acd516444a
Fix header compatibility with c++ dialects.
...
This allows the option of at least -std=gnu++14 for new translation units.
Changes are trivial.
2016-07-19 22:38:56 -07:00
Jason Volk
e8355cb7be
MAPI Version 3
...
This version leverages a flexible, cleaner key-value strategy
reducing the need to design entire new headers for every feature
addition, change, etc.
* A friendly declaration for the module authors, with minimal
requirements to fill in, and explicit labels of what the fields are.
* Repetition of keys, removing references to (and the requirement to
build) a clist, hlist and hfnlist and caplist and whatever the future
holds.
* Safe deterministic loading and unloading. Keys are evaluated in
order, errors can be recognized, and unloading occurs in reverse
order.
ircd: Refactor internal half of modules.c, with some V3 additions.
Provides better delegation for versions, a cleaner stack with better
error handling, and some functionality deduping. V1 and V2 handlers
are still somewhat unaltered, just factored in.
2016-06-28 20:14:09 -07:00
Jason Volk
97a4adae40
ircd/librb: epoch needs a john hancock
2016-06-28 20:14:09 -07:00
Jason Volk
c5698b0276
librb: Move bool type stuff from ircd stdinc to rb.
2016-06-28 17:00:14 -07:00
Jason Volk
3073c2fa3a
ircd: Add slog(), a log function that takes both an L_ argument and
...
a SNO_ argument to smash the pattern of having an ilog() followed by
sendto_realops_snomask() with the same message.
2016-06-27 14:32:53 -07:00
Jason Volk
6357ad5fd9
Add a reason pointer to hook_data_privmsg_channel. When set, the reason is appended to the text of ERR_CANNOTSENDTOCHAN. The pointer will not be free()'ed.
2016-06-25 22:57:04 -05:00
William Pitcock
7e1bb8ad0d
Proper channel mode classification. Fixes existing ad hoc
...
channel mode classification which is required by RPL_MYINFO indicating arity,
and RPL_ISUPPORT indicating an enumerated class. The content of these replies
had previously been generated by hardcoded strings of some letters.
Channel modes require classification which corresponds to the
CHANMODES= data in RPL_ISUPPORT. Classes A,B,C can then be
listed in the unary column of RPL_MYINFO. cflag_add() is updated
for this. Additional cleanup of chmode.h and channel.h
circularity is also proffered within.
Submitted-by: Jason Volk <jason@zemos.net>
2016-06-25 22:54:37 -05:00
William Pitcock
e55a9d6abc
modules: serious cleanups
2016-06-18 00:52:16 -05:00
William Pitcock
92dad4831d
modules: cleanups
2016-06-18 00:38:40 -05:00
William Pitcock
8e30e3def4
messages: fix format string warning reported by latest clang
2016-06-17 23:39:19 -05:00
Aaron Jones
aa7b99eb77
restart: functions that call exit(3) should be marked noreturn
2016-06-01 20:54:12 +00:00