Jason Volk
4928572037
travis: Fix GCC compiler environment.
2016-06-30 21:07:03 -07:00
William Pitcock
7f6e873ec7
Merge pull request #197 from jevolk/mapi3
...
Module API Version 3 + ratbox package
2016-06-28 22:19:57 -05: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
ba7cb82ab3
librb: Add backtrace support and trace on assertions.
2016-06-28 20:13:52 -07:00
Jason Volk
5a0016ccbd
librb: Minor cleanup of rb_dlink.h
...
Add prototypes; some macro cleanup.
2016-06-28 17:00:14 -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
1490dd36b5
librb: Add missing rb_dictionary.h to rb_lib.h list.
2016-06-28 17:00:14 -07:00
Jason Volk
c9f0354dbc
librb: Add array_to_string() to invert string_to_array().
2016-06-28 17:00:14 -07:00
Jason Volk
14cd76b435
librb: Suppress a ubiquitous strict-prototypes warning with anecdote.
2016-06-28 17:00:14 -07:00
Jason Volk
c7529ba5bf
librb: Relax rb_free() to allow const pointers.
2016-06-28 17:00:14 -07:00
Jason Volk
050e36b369
librb: Dress some memory functions with attributes.
2016-06-28 17:00:06 -07:00
Elizabeth Myers
180b684529
Fix stupid compiler errors by my stupidity and tiredness
2016-06-27 19:14:32 -05:00
Elizabeth Myers
96b1c6b8bf
blacklist: add blacklist_cancel_none
2016-06-27 19:06:49 -05:00
Elizabeth Myers
2374f221fe
blacklist: add return statement. d'oh.
2016-06-27 19:00:00 -05:00
Elizabeth Myers
57779d5439
blacklist: fix precedence lossage
2016-06-27 18:59:53 -05:00
Elizabeth Myers
cd38b86d3e
blacklist: if no blacklists were checked, properly terminate query.
2016-06-27 18:56:14 -05:00
Elizabeth Myers
01f6c84bbc
build_rdns: minor cleanup
2016-06-27 18:37:46 -05:00
Elizabeth Myers
8dfd99e7fe
blacklist: tweak message for timeout
2016-06-27 18:28:02 -05:00
Elizabeth Myers
3c9d3bb23f
blacklist: give different messages for cancellation and timeout
2016-06-27 18:24:39 -05:00
Jason Volk
4ad6696403
librb: fork an rb_dlink.h out of rb_tools.h
2016-06-27 14:32:53 -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
215775da59
librb: Add smart-pointer macro for RAII resource management.
...
A good practice, especially for large community projects, preventing
leaks and error handling as clean possible without exceptions.
2016-06-27 14:32:43 -07:00
Mantas Mikulėnas
33bbdf474e
use designated initializers for the mode table
...
The table sure was pretty but we've been using the C99 syntax in quite a
few places already with no complaints, anyway.
2016-06-27 09:18:01 +03:00
William Pitcock
79235fec68
modules: missed a spot
2016-06-26 01:43:17 -05:00
William Pitcock
f200d90869
modules: allow non-opers to see what extensions are loaded
2016-06-26 01:40:43 -05:00
William Pitcock
355f78b248
add an example spamfilter configuration file (probably shouldn't be used on actual networks of course)
2016-06-26 01:22:30 -05:00
William Pitcock
6645bd9d5e
extensions: import @jevolk's spamfilter_expr module
2016-06-26 00:00:00 -05:00
William Pitcock
2be307e059
configure: check for PCRE2
2016-06-25 23:42:00 -05:00
William Pitcock
1a2426007f
spamfilter: import @jevolk's spamfilter_nicks module
2016-06-25 23:19:40 -05:00
William Pitcock
6727daa33e
librb: export-syms: export rb_radixtree_destroy().
2016-06-25 23:19:25 -05:00
William Pitcock
189f035bd8
extensions: implement @jevolk's spamfilter core module
2016-06-25 23:07:05 -05: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
499f3437c7
configure: 5 now
2016-06-25 22:30:58 -05:00
William Pitcock
528d6e43af
travis: turn off clang on linux for now
2016-06-25 14:35:16 -05:00
Jason Volk
12de082e2c
Fix bug. Note: The second hunk is just an assumption. It's not called from anywhere.
2016-06-25 14:27:32 -05:00
William Pitcock
c642292f25
Merge pull request #196 from jevolk/master
...
I typed MODRESTART by accident
2016-06-21 20:00:01 -05:00
Jason Volk
b5cfad0319
Core modules cannot be unloaded, otherwise bad things happen.
...
Additionally some information is logged and passed to the operator
conducting a MODRESTART.
2016-06-21 17:42:36 -07:00
Jason Volk
94afbe9c8e
ircd: Fix capability entry name string ownership.
...
The entry->cap must be copied and exclusive to the entry for the
cap to be orphaned, even if literals are expected. Because modules.
2016-06-21 17:32:28 -07:00
William Pitcock
2e29fd422d
librb: remove one more VMS detritius
2016-06-19 21:47:59 -05:00
William Pitcock
0268efc78c
librb: we have no plans to support VMS
2016-06-19 21:47:23 -05:00
William Pitcock
94555087a1
ircd: relocate_paths() back on windows only now
2016-06-18 01:05:38 -05:00
William Pitcock
2185c50aad
m_modules: use new module api
2016-06-18 00:59:15 -05:00
William Pitcock
1e37cb443d
conf_parser: warning fixes
2016-06-18 00:52:54 -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
73b70ae846
ircd: fix compile of relocate_paths()
2016-06-18 00:22:02 -05:00
William Pitcock
7145720468
ircd: make relocate_paths() available always
2016-06-18 00:21:39 -05:00
William Pitcock
c51b77a312
ircd: call relocate_paths() in all cases
2016-06-18 00:20:59 -05:00