Commit graph

178 commits

Author SHA1 Message Date
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 0e5bf029a6 modules: wow, that was a dumb error.
Add a stupid break statement.
2016-03-06 17:08:44 -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 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
William Pitcock a3a2f405fc ircd: -lrb, not -lratbox 2016-03-06 02:34:47 -06:00
William Pitcock c83f2f5e12 rename libratbox to librb, since its pretty modified anyway 2016-03-06 02:30:20 -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 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 428f9bc117 client: handle UID rollover. ircd-ratbox r28917 2016-03-02 15:56:49 -06:00
William Pitcock 65f2c0a263 ircd: simplify connid table handling 2016-03-02 15:31:50 -06:00
William Pitcock 1b6568f6d0 sslproc: compile fix 2016-03-01 20:24:12 -06:00
William Pitcock a0130f9daf sslproc: properly use zconnid's for ziplinks 2016-03-01 20:02:55 -06:00
William Pitcock 36f0ec74c1 client: always purge a client from the connid table, as connid is not related to FD 2016-03-01 19:52:34 -06:00
Simon Arlott 035d9143bd ircd: add missing sslproc function ssld_foreach_info()
Iterate through the ssl daemons and report their status.
2016-03-01 21:30:51 +00:00
William Pitcock 2e4bf32f36 capability: set ownerdata to NULL when orphaning 2016-02-28 19:15:04 -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 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