Commit graph

719 commits

Author SHA1 Message Date
Elizabeth Myers 8a26cd1973 dns: clean up awful hacks.
We now have a resolver cache which we init on startup.
2016-03-08 03:22:25 -06:00
Elizabeth Myers 394b8dde17 authd: allow querying the list of DNS servers.
This was an asston of pain, and it still feels "dirty" as it introduces
an async call where there normally wouldn't be one. Better
implementation more than welcome.
2016-03-08 02:53:25 -06:00
Elizabeth Myers 7e6b5384b3 Convert 2.8 style ToUpper/ToLower names to irctoupper/irctolower 2016-03-07 19:04:24 -06:00
Elizabeth Myers 81204be809 Add ircd serials to AV2. 2016-03-07 18:10:22 -06:00
Elizabeth Myers 749d697c98 Fix generation of serno.h
Due to reversed conditionals, it wasn't being generated properly.

This also actually fixes its generation in librb by just copying the
Charybdis version. Unbundlers will want to take note of this.
2016-03-07 17:15:39 -06:00
Max Teufel 54d8925ed4 extensions: add umode_noctcp extension 2016-03-07 18:48:14 +01:00
Elizabeth Myers 638d286293 Change some RATBOX_FOO defines to CHARYBDIS_FOO. 2016-03-07 05:01:31 -06:00
William Pitcock b7e4fcb7a7 modules: AV2: use unsigned int for capability IDs instead of signed int 2016-03-07 00:13:54 -06:00
Elizabeth Myers 978b723252 modules: show module provenance in modlist 2016-03-06 23:21:08 -06:00
Elizabeth Myers 216d70e91d modules: tag origin at load time. 2016-03-06 18:57:05 -06:00
Elizabeth Myers c63aeb44e9 modules: add origin field to V2 2016-03-06 17:52:49 -06:00
Elizabeth Myers 2ab24be6f9 modules: show descriptions in list 2016-03-06 17:26:30 -06:00
Elizabeth Myers 0eb7d9c02c modules: add description field 2016-03-06 17:14:31 -06:00
Elizabeth Myers 7b075a7610 modules: whoops, forgot one tiny thing 2016-03-06 17:04:02 -06:00
Elizabeth Myers 8e9c6a7590 modules: add new MAPI V2
MAPI V1 is still supported for legacy modules, but it is highly
recommended to update to MAPI V2. It includes support for capability
tables, module descriptions, and implicit versions.
2016-03-06 16:53:03 -06:00
Elizabeth Myers a4bf26dd34 Move irc_* data structures to librb.
This makes the base ircd less cluttered up with data structures that can
go elsewhere.
2016-03-06 14:17:19 -06:00
Elizabeth Myers fe037171d6 Change all leftover libratbox stuff to librb. 2016-03-06 03:49:27 -06:00
Elizabeth Myers 5f5b18684d config.h.dist: forgot one... 2016-03-06 03:00:42 -06:00
Elizabeth Myers cbeab4bc34 Remove $Id tags from everything.
These are obsolete and none have changed since 10 years gao...
2016-03-06 02:47:27 -06:00
Elizabeth Myers 1d91de8100 Remove old .indent.pro files
These have been unused since dinosaurs roamed the earth and are mostly
smelly old Hybrid relics.
2016-03-05 21:21:36 -06:00
William Pitcock 38ffccf8c3 cap: allow modules to return client-specific responses for capability inquiries 2016-03-05 18:56:36 -06:00
William Pitcock 9ea48ec30a remove presupplied autotools files 2016-03-05 17:47:48 -06:00
Elizabeth Myers 7416e480b0 parse: export cmd_dict for use elsewhere. 2016-03-05 01:05:26 -06:00
Elizabeth Myers e8f1c19e7b parse: get rid of report_messages
It is a function with a single usage, that is used only for one specific
stats command on one line.
2016-03-05 00:55:33 -06:00
Simon Arlott e9ffc3c153
ssld: provide version in stats S output 2016-03-03 22:14:50 +00:00
William Pitcock ddf62b10f9 m_cap: add support for CAP LS 302 2016-02-28 01:13:08 -06:00
William Pitcock 193d4db30c sasl: transfer ownership of 'sasl' capability to m_sasl module 2016-02-28 00:29:26 -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 71c875fb9a msgbuf: allow for an explicit target to be defined 2016-02-20 17:59:00 -06:00
William Pitcock 48a2b7c182 hook: allow hook_data to have non-const arguments, add hook_cdata for arguments that must be treated const 2016-02-20 17:44:13 -06:00
William Pitcock ddedc60398 cap: register the account-tag capability 2016-02-20 17:26:35 -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 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 b4993fe8c3 msgbuf: pull in s_assert 2016-02-12 12:12:30 -06:00
William Pitcock 920e4849f1 msgbuf: fix AFP() macro 2016-02-12 11:56:15 -06:00
William Pitcock 9d5170247e msgbuf: attach capabilities mask to each tag for sending
this will be used with a bloom filter to speed up the 1-to-many case
2016-02-11 19:50:47 -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
William Pitcock 269dd686b3 msgbuf: improve parse logic 2016-02-10 00:46:32 -06:00
William Pitcock a8e69f5dfc msgbuf: implement msgbuf_parse() 2016-02-10 00:08:58 -06:00
William Pitcock 88b427b61d msgbuf: add lowlevel interface for building MsgBuf objects 2016-02-09 23:19:13 -06:00
William Pitcock b830b64106 include: add msgbuf.h for future msgbuf api 2016-02-09 23:08:35 -06:00
William Pitcock cc6ce2d689 ircd: hash: remove some detritus 2016-01-23 11:44:08 -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 912cae0c9c Revert "ircd: rework sendq limits a bit."
This reverts commit 9a5958119c.
2016-01-20 22:27:33 -05:00
William Pitcock 999fab778c Revert "LIST: use new sendq system to reimplement SAFELIST differently."
This reverts commit e835592cfc.
2016-01-20 22:26:55 -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 71c955336e ircd: add general::hide_opers_in_whois to simulate ircd-seven operhide 2016-01-15 13:38:40 -06:00
William Pitcock 4d21f1e8e0 extensions/helpops: new module, implementing a helpops system.
if loaded, this module takes over /stats p, and displays people who are umode +H.
to get umode +H, one must have the "usermode:helpops" permission.
2016-01-14 08:08:40 -06:00
William Pitcock ea2d270096 STATS: allow modules to override normal stats requests 2016-01-14 06:57:04 -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 14482679ce ircd: channel: implement an option to strip color codes from channel topics 2016-01-13 17:05:41 -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 b870a5f8e9 extensions/override: display mode-change string in override messages 2016-01-11 22:40:32 -06:00
William Pitcock 7abb4a4f0d parse: add missing semicolon 2016-01-11 22:31:19 -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 730b914c17 LIST: more cleanups 2016-01-09 23:34:52 -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 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 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 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 e575ed5193 libratbox: disable the block allocator, but keep it as a stub for now 2016-01-08 07:16:23 -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
Aaron Jones d8c4154da2 Fix LTDL conditional, remove some unnecessary and/or ugly configure tests 2016-01-07 17:15:55 +00: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 d610d3f344 config.h: fix SPATH 2016-01-06 02:00:12 -06:00
William Pitcock 2a19fc3f57 general: remove last vestiges of static modules support (this hasn't ever actually worked...) 2016-01-06 01:28:20 -06:00
William Pitcock f272e7abc7 modules: use libltdl to load the modules 2016-01-05 21:39:09 -06:00
William Pitcock c52df12552 buildsystem: convert to automake + libtool 2016-01-05 21:20:25 -06:00
William Pitcock 9e07c8f70b whois: add a hook allowing for ShowChannel() behaviour to be overridden for channel visibility 2016-01-05 18:45:07 -06:00
Juuso Lapinlampi 6eb0267a90 messages.h: Remove 900-902 IRCv3.1 SASL trailing period
The IRCv3.1 SASL specification [1] has been updated today, and brings a
level of consistency with the trailing periods (or the lack of).

This implements the change made in
ircv3/ircv3-specifications@6d2ca77ffd.

[1]: http://ircv3.net/specs/extensions/sasl-3.1.html
2015-12-30 12:51:48 +02:00
Juuso Lapinlampi e0160ec5a4 messages.h: Standardize 256 (RPL_ADMINME) with RFC 1459
RPL_ADMINME is a response the client receives using the ADMIN command.
Charybdis used to implement a non-standard version of this.

The RFC 1459 standard [1] says in section "6.2 Command responses.":

            256     RPL_ADMINME
                            "<server> :Administrative info"

This commit corrects the behavior to follow the standard.

[1]: https://tools.ietf.org/html/rfc1459
2015-12-28 21:19:47 -06:00
William Pitcock 0817ad4cd0 messages.h: fix numeric 320 2015-12-28 01:36:40 -06:00
William Pitcock 72ad5c04fe whois: list active operator block and privset when appropriate 2015-12-28 01:33:09 -06:00