William Pitcock
193d4db30c
sasl: transfer ownership of 'sasl' capability to m_sasl module
2016-02-28 00:29:26 -06:00
William Pitcock
573896f639
send: allow passing NULL origin to build_msgbuf_from() (for future use)
2016-02-27 02:56:44 -06:00
William Pitcock
be2ce24c42
send: implement echo-message
2016-02-27 02:48:37 -06:00
William Pitcock
0416a2cc86
starttls: take ownership of 'tls' capability
2016-02-27 01:45:40 -06:00
William Pitcock
32df5e96a6
cap: substantial rewrite leveraging the ircd capabilities framework for client caps
2016-02-27 01:41:36 -06:00
William Pitcock
ba83226733
capability: move some previously private structures to public API
2016-02-27 00:46:49 -06:00
William Pitcock
486cd34415
ircd: chase capability API changes
2016-02-27 00:01:54 -06:00
William Pitcock
63b9db9675
capability: allow attaching capability-owner data to a capability token, to enable extended data for client capabilities
2016-02-26 23:55:43 -06:00
William Pitcock
4d2f203026
msgbuf: msgbuf_unparse_tags(): don't send a tags sigil unless tags will actually be emitted
2016-02-20 18:41:16 -06:00
William Pitcock
474f6342e8
send: we dont actually want tags in sendto_channel_local_butone()
2016-02-20 18:35:35 -06:00
William Pitcock
c8c3ac2440
send: obviously we can't just reuse a va_list, duh
2016-02-20 18:32:32 -06:00
William Pitcock
667fb62eec
send: implement tags support for sendto_channel_flags() too
2016-02-20 18:27:15 -06:00
William Pitcock
adaa9ba989
send: more sendto_anywhere() fixing
2016-02-20 18:12:46 -06:00
William Pitcock
f2003b4411
send: fix sendto_anywhere() missing a target param
2016-02-20 17:59:38 -06:00
William Pitcock
71c875fb9a
msgbuf: allow for an explicit target to be defined
2016-02-20 17:59:00 -06:00
William Pitcock
5559c3cf17
send: implement partial support for outbound tags (enough for account-tag as a testcase)
2016-02-20 16:37:19 -06:00
William Pitcock
4f8ababae0
send: implement linebuf_put_msgbuf() and msgbuf_build_from(), which build the core of the ircv3.2 tags support for outbound messages
2016-02-20 15:50:12 -06:00
William Pitcock
33085472a2
msgbuf: make msgbuf_unparse_prefix() public
2016-02-20 14:46:09 -06:00
William Pitcock
c678fbc08b
ircd: remove broken USE_IODEBUG_HOOKS knob and related code
2016-02-20 12:02:49 -06:00
William Pitcock
8f64d32533
msgbuf: implement msgbuf_vunparse_fmt() and friends
2016-02-20 11:38:00 -06:00
William Pitcock
691adddd0e
msgbuf: handle me.name properly
2016-02-20 11:23:44 -06:00
William Pitcock
4a13e3f1da
msgbuf: add some message building code
2016-02-20 11:21:12 -06:00
William Pitcock
d84acbceca
newconf: move SSL/TLS deprecation message from ERROR severity to WARNING severity
2016-02-19 17:11:25 -06:00
William Pitcock
7baa37a9ef
msg: remove last vestiges of the fakelag system. charybdis has never supported fakelag.
2016-02-19 16:43:39 -06:00
Antoine Beaupré
a393a68a0e
make build reproducible
...
we do this by removing the uname usage everywhere: it is not actually
used at runtime at all.
we keep the timestamp, because it is actually used in user_welcome()
but allow it to be overriden.
ideally, that timestamp would be completely removed, but I am not sure
what to put in its place, or if it would break some mysterious RFC (or
client!) if we remove that announcement.
2016-02-16 00:37:20 -05:00
William Pitcock
d670fe5271
msgbuf: msgbuf_append_tag(): add support for attaching a specific capability bit
2016-02-13 00:19:23 -06:00
William Pitcock
08006c16f8
msgbuf: do a better job of handling gotchas with parsing tags
2016-02-10 21:16:28 -06:00
William Pitcock
4a84a763cd
ircd: change MessageHandler to include a MsgBuf pointer at the front for tag access
2016-02-10 20:13:44 -06:00
Simon Arlott
eb1b303d56
ircd: support restarting ssld processes
...
Add REHASH SSLD (admins only) that starts new sslds and marks the
existing ones as inactive until all their clients disconnect.
Very useful whenever the SSL library has a vulnerability because
new connections can use a new version of the library without
disconnecting existing clients/servers.
Add STATS S (admins only) to list ssld processes, status, and client
count.
2016-02-10 19:03:30 -06:00
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
William Pitcock
db891ac3ca
ircd: irc_radixtree: add irc_radixtree_irccasecanon and irc_radixtree_strcasecanon helpers
2016-01-09 01:00:55 -06:00
William Pitcock
325cc939b7
ircd: irc_radixtree: add some convenience functions for tracking radix tree stats
2016-01-09 00:54:57 -06:00
William Pitcock
8e6ba6f9ce
ircd: add irc_radixtree, which is like irc_dictionary but uses a radix tree as the backing store
2016-01-09 00:44:39 -06:00
William Pitcock
d6797f8639
ircd: operhash: convert to a proper stringpool implementation
2016-01-08 11:09:00 -06:00
William Pitcock
9e45a5ca19
buildsystem: further cleanup
2016-01-08 07:01:00 -06:00
William Pitcock
1eeb046930
ircd: remove internal resolver, no longer used
2016-01-08 06:39:51 -06:00
William Pitcock
1d02144f8b
ircd: move DNS resolution over to authd
2016-01-08 06:31:08 -06:00
William Pitcock
1bf2919817
ircd/dns: implement final version of authd-dns line protocol
2016-01-08 05:44:05 -06:00
William Pitcock
6d063f05b0
ircd: start up authd
2016-01-08 05:20:09 -06:00
Aaron Jones
d8c4154da2
Fix LTDL conditional, remove some unnecessary and/or ugly configure tests
2016-01-07 17:15:55 +00:00
Aaron Jones
eec2776c6c
Fix some autotools discrepancies, disable SQLite threading code
2016-01-07 16:58:28 +00:00
William Pitcock
63f53befd3
ircd: add main.c stub executable
2016-01-06 23:57:35 -06:00
William Pitcock
415b482ce3
ircd: add new lex/yacc files
2016-01-06 22:50:54 -06:00
William Pitcock
1d9974511b
ircd/dns: same
2016-01-06 21:35:34 -06:00
William Pitcock
ebccc13b84
authd: fix ratbox3.1-ism
2016-01-06 21:25:07 -06:00
William Pitcock
3949459b81
ircd/authd: minor cleanups
2016-01-06 04:46:11 -06:00
William Pitcock
fb7d74efef
ircd/authd: split out authd lifecycle functions from actual DNS functions
2016-01-06 04:41:57 -06:00
William Pitcock
7d2852b4d1
dns: new WIP client which queries authd for DNS records, not yet in use
2016-01-06 04:28:34 -06:00
William Pitcock
b697c3296a
sslproc: process title of ssld seemed gramatically weird (nitpicking)
2016-01-06 02:15:23 -06:00
William Pitcock
d76258f559
modules: revert lt_dlopenext() change
2016-01-06 01:57:24 -06:00
William Pitcock
4f0e3623ca
ircd: fix linking on OS X
2016-01-06 01:40:48 -06:00