Simon Arlott
5e270e7d89
ircd: Handle which_ssld failure
...
It's possible for which_ssld to fail and return NULL, handle this in
start_ssld_connect and start_ssld_accept by returning NULL. The NULL
return value is already handled in all calls to start_ssld_accept,
so handle this for start_ssld_connect by reporting an error connecting.
Handle it in start_zlib_session by exiting the client.
2016-02-10 22:45:38 +00:00
Simon Arlott
b9ff4868a9
ircd: add missing rb_free in start_zlib_session
2016-02-10 22:45:35 +00:00
William Pitcock
1579e155b1
parse: further cleanups
2016-02-10 10:25:16 -06:00
William Pitcock
20dd3725b8
parse: fix aliases
2016-02-10 10:09:42 -06:00
William Pitcock
269dd686b3
msgbuf: improve parse logic
2016-02-10 00:46:32 -06:00
William Pitcock
4d03595da4
parse: utilise MsgBuf to simplify message parsing
2016-02-10 00:22:37 -06:00
William Pitcock
a8e69f5dfc
msgbuf: implement msgbuf_parse()
2016-02-10 00:08:58 -06:00
William Pitcock
de50a480af
Remove unused .depend files.
2016-02-09 23:08:35 -06:00
Valerii Iatsko
5203cba5ce
Remove libratbox's snprintf.c, update related ircd code
2016-02-10 02:25:32 +01:00
William Pitcock
55d5f7970a
ircd: various memory leak fixes from pull requests
2016-02-09 10:53:24 -06:00
Simon Arlott
87c44482d0
ircd: chmode: Avoid referencing beyond the end of the flags_list array in set_channel_mode
...
We're setting flags to flags_list[3] at the end of the loop, but the
array only has 3 elements. Unless the compiler optimises this away
(because flags will not be used again) we're accessing memory beyond
the end of the array.
With gcc-4.9:
chmode.c: In function 'set_channel_mode':
chmode.c:1548:54: warning: iteration 2u invokes undefined behavior [-Waggressive-loop-optimizations]
for(j = 0, flags = flags_list[0]; j < 3; j++, flags = flags_list[j])
^
chmode.c:1548:2: note: containing loop
for(j = 0, flags = flags_list[0]; j < 3; j++, flags = flags_list[j])
Explicitly set "flags = flags_list[j]" at the start of each loop
iteration, which will avoid referencing off the end of the array.
2016-02-09 10:41:37 -06:00
William Pitcock
35f284c2bd
ircd: newconf: impose a deprecation warning for plaintext listeners
2016-01-29 11:35:05 -05:00
William Pitcock
cc6ce2d689
ircd: hash: remove some detritus
2016-01-23 11:44:08 -05:00
William Pitcock
d38c08c178
ircd: hostname lists are now stored in a radix tree
2016-01-23 11:40:17 -05:00
William Pitcock
b47f8a4fda
ircd: import modified version of ratbox 3.1 whowas code
2016-01-23 11:16:34 -05:00
William Pitcock
3de2266243
ircd: monitor: use irc_radixtree instead of home-grown hashtable
2016-01-23 10:35:40 -05:00
William Pitcock
912cae0c9c
Revert "ircd: rework sendq limits a bit."
...
This reverts commit 9a5958119c
.
2016-01-20 22:27:33 -05:00
William Pitcock
704697b6b6
ircd: radixtree: allow irc_radixtree_elem_find() to find a fuzzy match instead of an exact match
2016-01-20 22:10:35 -05:00
William Pitcock
0d9a72de21
ircd: radixtree: add irc_radixtree_foreach_start_from() which uses irc_radixtree_elem_find() to find the starting point
2016-01-20 21:02:03 -05:00
William Pitcock
1b68574301
ircd: radixtree: move some things into the right namespace
2016-01-20 20:52:17 -05:00
William Pitcock
1046ac77af
ircd: chmode: change CHFL_CHANOP checks where appropriate to allow levels above CHFL_CHANOP
...
this is the same behaviour as other checks in other places in the code.
2016-01-16 01:55:57 -06:00
William Pitcock
f60055d32d
ircd: call rehash_authd(), not restart_authd() when rehashing
2016-01-16 00:04:07 -06:00
William Pitcock
71c955336e
ircd: add general::hide_opers_in_whois to simulate ircd-seven operhide
2016-01-15 13:38:40 -06:00
William Pitcock
3ee43bcf29
ircd: get_channel_access(): do not derive channel pointer from membership
2016-01-13 22:16:44 -06:00
William Pitcock
633531a4aa
TOPIC: strip channel topic colors here if configured, instead of in set_channel_topic()
2016-01-13 17:17:14 -06:00
William Pitcock
14482679ce
ircd: channel: implement an option to strip color codes from channel topics
2016-01-13 17:05:41 -06:00
William Pitcock
b4e3861bf9
ircd: get_channel_access(): allow override hooks to work without a membership pointer
2016-01-13 16:56:05 -06:00
William Pitcock
fd8e3f892c
ircd: chmode: clean up chm_hidden() a little bit
2016-01-13 16:37:25 -06:00
William Pitcock
be29ec793d
ircd: import hidden channel modes framework, from ircd-seven
...
This allows for modules to define channel modes which are only visible to opers.
2016-01-13 16:34:27 -06:00
William Pitcock
15feac531c
ircd: implement support for remote module load/unload/etc commands
2016-01-12 00:37:54 -06:00
William Pitcock
cc7ae51cdc
Allow remote DIE and RESTART (from ircd-seven)
2016-01-12 00:04:54 -06:00
William Pitcock
a4721f5e9f
ircd: implement EXTENDCHANS, based on ircd-seven (with some improvements from chatircd)
2016-01-11 23:32:23 -06:00
William Pitcock
fe749d3709
ircd: implement GRANT subsystem based on ircd-seven
2016-01-11 23:02:03 -06:00
William Pitcock
cd66c5b922
ircd: change_nick_user_host(): only update target_p->username if the buffer has actually changed (pointed out by Valgrind)
2016-01-11 22:46:49 -06:00
William Pitcock
b870a5f8e9
extensions/override: display mode-change string in override messages
2016-01-11 22:40:32 -06:00
William Pitcock
e4603e3d27
parse: implement reconstruct_parv()
2016-01-11 22:28:55 -06:00
William Pitcock
9b74b99268
ircd: hash: channels are no longer a hashtable
2016-01-09 23:47:50 -06:00
William Pitcock
9a5958119c
ircd: rework sendq limits a bit.
...
The sendq limit is now soft, now we halt processing if a sendq is exceeded, until it is sufficiently drained.
This allows us to implement SAFELIST and other floody commands without hacks.
2016-01-09 23:14:04 -06:00
William Pitcock
8dacf9e917
ircd: make STATS B easier to understand
2016-01-09 06:23:13 -06:00
William Pitcock
a21e57bebe
ircd: scache: use irc_radixtree
2016-01-09 05:55:46 -06:00
William Pitcock
ed4d1541ff
ircd: hash: we do not use 2.8-style chained hashtables for client lookups anymore, so remove no longer relevant comments
2016-01-09 05:43:51 -06:00
William Pitcock
bb4ac31447
ircd: hash: use an irc_radixtree for client names
2016-01-09 05:30:13 -06:00
William Pitcock
3eeccbe3ce
ircd: hash: use an irc_radixtree for IDs
2016-01-09 05:13:10 -06:00
William Pitcock
46be39faab
ircd: hash: use an irc_radixtree for storing resv's
2016-01-09 04:59:02 -06:00
William Pitcock
5c7c7d65c2
ircd: hash: client connection id hashtables are now dictionaries keyed by uint32
2016-01-09 04:25:41 -06:00
William Pitcock
45dfdf46c8
ircd: irc_dictionary: allow storage of non-string types as keys
2016-01-09 04:09:40 -06:00
William Pitcock
d99ff0298c
ircd: irc_dictionary: fix up stats routines
2016-01-09 01:41:20 -06:00
William Pitcock
21d5a11cb8
ircd: irc_dictionary: also show dictionary stats
2016-01-09 01:34:37 -06:00
William Pitcock
99b461bb2f
ircd: ensure irc_dictionary users have names, for stats tracking.
2016-01-09 01:22:11 -06:00
William Pitcock
b02a913bc8
ircd: operhash: rewrite to use irc_radixtree
2016-01-09 01:08:15 -06:00