Commit Graph

788 Commits

Author SHA1 Message Date
Jilles Tjoelker a4893a45be Use memmove instead of memcpy where there is overlap (modunload). 2010-03-05 22:05:15 +01:00
Jilles Tjoelker 65b8e0029e Add propagated klines.
A KLINE command without the ON clause now sets a propagated
("global") ban. KLINE commands with the ON clause work as
before.

Propagated klines can only be removed with an UNKLINE command
without the ON clause, and this removes them everywhere.
In fact, they remain in a deactivated state until the latest
expiry ever used for the mask has passed.

Propagated klines are part of the netburst using a new BAN
message and capab. If such a burst has an effect, both the
server name and the original oper are shown in the server
notice.

No checks whatsoever are done on bursted klines at this time.

The system should be extended to XLINE and RESV later.

There is currently no way to list propagated klines,
but TESTLINE works normally.
2010-03-05 18:36:44 +01:00
Jilles Tjoelker 12894c8888 Add code to expire "propagated" bans.
The data structure is very simple: a dlink list of all propagated bans.
2010-03-04 00:21:22 +01:00
Jilles Tjoelker cf06f92b78 Make struct operhash_entry private. 2010-03-01 01:24:00 +01:00
Jilles Tjoelker a0f4c418d3 Track who set a dline/kline/xline/resv as in ratbox3.
Like in ratbox3, there is no way to query this information
(other than bandb's tables, but they worked before this
commit).
2010-03-01 01:23:22 +01:00
Jilles Tjoelker 157c1f04bd Generate the "Temporary K-line %d min" part from aconf->hold - aconf->created. 2010-02-28 16:27:06 +01:00
Jilles Tjoelker ce60772db6 Store the creation time of klines and dlines as a time_t instead of as text.
The value 0 indicates the creation time is unknown (currently the case
for bandb).
Also store a creation time for xlines and resvs, but do not use it yet.
2010-02-28 00:46:56 +01:00
Jilles Tjoelker bebc68755d Add a missing comment for new /challenge numerics. 2010-02-27 23:56:56 +01:00
Alexander F?r?y 360742bdf4 Use RPL_QUIETLIST and RPL_ENDOFQUIETLIST instead of RPL_BANLIST and
RPL_ENDOFBANLIST for channel mode +q.
2010-02-27 01:08:41 +01:00
JD Horelick 3232087a3c Make all snotes for mod* stuff netwide since unless you're opered
on more than one server, you won't know if the command worked or not.
2010-03-25 03:18:32 -04:00
JD Horelick e31b740dd1 Allow using all the mod* commands remotely. 2010-03-25 00:33:20 -04:00
JD Horelick 069f104a2e Add shared::modules option, remote module stuff coming later/soon. 2010-03-24 15:50:15 -04:00
JD Horelick 4aa4fa57f2 I am made of fail. 2010-03-23 15:21:42 -04:00
JD Horelick 74e3e4f1e2 Add DIE shared option for remote restart and die which are on their
way next.
2010-03-23 14:19:48 -04:00
JD Horelick 1cc810d3a7 Add general::true_no_oper_flood . I'm not going to explain it here.
Ask me what it does on IRC if you're curious.
2010-03-21 00:14:02 -04:00
JD Horelick 29b3f2e4e5 Fix a small typo that i noticed looking around the source. 2010-03-18 02:44:51 -04:00
B.Greenham 7bd3701cd6 Remove override being able to automatically and silently go through +q/+m/etc.
This was previously doable without sending wallops, and had high abuse potential.
Overriding opers can set themselves +v/+o or remove the offending mode if they need to get past such things.
2010-03-16 13:44:44 -04:00
JD Horelick e78f685073 Add use_part_messages config option. When disabled, this will show
all PARTs without a message/reason. Recommended to set to no if
a static quit message is set.
2010-03-13 22:56:38 -05:00
JD Horelick c0e2aa60b8 Added static_quit support. Pretty much what the name implies. 2010-03-13 22:19:29 -05:00
B.Greenham 0fbe4a384c Make metadata use UIDs for s2s communication, and fix up propegation of channel metadata. 2010-03-08 18:09:10 -05:00
JD Horelick 71ea606903 Make override WALLOPS actually send netwide this time. 2010-03-07 23:22:07 -05:00
B.Greenham c1c91f9438 s/owner/admin/ throughout the source code and docs. 2010-03-07 23:18:39 -05:00
B.Greenham f8b60fb5fd Make joining in override only wallops if you couldn't normally join the channel. 2010-03-07 22:58:27 -05:00
JD Horelick 34d8ef4d14 Change all override snotes to wallops to match m_o* and to
make it a lot more obvious when a oper is using override.
2010-03-07 22:42:51 -05:00
JD Horelick c809010b89 Make +-a give you the appropriate error message if you don't have
the proper privs.
2010-03-07 21:57:00 -05:00
William Pitcock a9f16d808d Fix construction of the channel mode vector table.
This fixes chm_* modules and should be backported to ircd-seven and charybdis 3.2.
2010-03-07 14:45:42 -06:00
B.Greenham 942d361d89 I am a massive idiot. Fix this problem. 2010-03-07 00:48:39 -05:00
B.Greenham bc4764aefd Looks like irc_dictionary things cannot support more than one key with the same value. Therefore, a rework of +J and OACCEPT's metadata are required to make them work properly with multiple users. 2010-03-06 19:22:59 -05:00
JD Horelick 55bf488d0f Update the YOUREOPER/oper-up message. 2010-03-06 01:36:21 -05:00
JD Horelick 55f5eaa147 Add a header file. 2010-03-05 21:35:36 -05:00
B.Greenham 7ab1bb39ab Automated merge with ssh://shadowircd/uranium/shadowircd/ 2010-03-05 20:09:26 -05:00
B.Greenham 937efa520e Fix segfault on netsplit due to clearing metadata too late. 2010-03-05 20:06:44 -05:00
JD Horelick a8afd89db2 Made overriding join send snotes. 2010-03-05 19:32:17 -05:00
JD Horelick a039358ed0 Fix a typo 2010-03-05 19:18:38 -05:00
B.Greenham 67cecc2b22 Should just specify the name here. 2010-03-05 19:16:27 -05:00
B.Greenham 8e3b2b85c7 Clean up cmode norepeat's metadata when unsetting +K. 2010-03-05 19:10:24 -05:00
B.Greenham 2f39232fab Fix the 'mode changes appear multiple times' bug. 2010-03-05 18:49:57 -05:00
B.Greenham a18f1b6ef8 Make it so that the same user can have more than one metadata entry of the same type. 2010-03-05 14:06:32 -05:00
B.Greenham d3b90aaad3 Clean up +J to work nicely and properly. 2010-03-05 13:45:01 -05:00
B.Greenham 6a97cac667 Make channel_metadata_time_add accept a regular value as well as a time value. 2010-03-05 11:57:48 -05:00
B.Greenham a6d1c6c037 Make RPL_WHOISMODES look a bit nicer. 2010-03-05 01:22:08 -05:00
B.Greenham 0b370fcc63 There's no reason to have two nearly identical structs for metadata, move metadata struct to ircd.h and use it for both channel and user metadata. 2010-03-05 00:51:40 -05:00
B.Greenham 8bced6dc39 Add *_metadata_clear and start using them. 2010-03-05 00:39:18 -05:00
B.Greenham 104becbf7f Add channel_metadata_time_add, a local only form of metadata that stores time values. And use it to make +J work. 2010-03-05 00:18:56 -05:00
B.Greenham 9a4dc29c68 Finish chmode +K, which prevents repeated lines. 2010-03-04 18:05:15 -05:00
B.Greenham cc39ce707d Make it so that channels can have more than one piece of channel metadata with the same value. 2010-03-04 17:49:15 -05:00
B.Greenham 6f659342dc Add channel metadata system. 2010-03-04 15:08:16 -05:00
JD Horelick 3da167f207 Really fix the ugly-ass desync by re-adding some code i accidentally
deleted on the first chmode.c override commit.
2010-03-04 04:28:53 -05:00
JD Horelick e853274c16 Fix a warning which may fix a real ugly desync.
If this doesn't fix the desync, i have an idea of how to do so.
2010-03-04 04:22:14 -05:00
B.Greenham 32d464fe77 Finish adding custom operstring support. 2010-03-03 23:06:32 -05:00
B.Greenham 3e06a4c803 Finish adding swhois support. 2010-03-03 22:59:26 -05:00
B.Greenham 3b0e9fa20e Automated merge with ssh://shadowircd/uranium/shadowircd/ 2010-03-03 20:38:57 -05:00
B.Greenham fb87421d0e Add user metadata. 2010-03-03 20:38:50 -05:00
JD Horelick cb097b8840 Don't discard self-oppings from remote override opers.
There's a small chance this could be incorrect.

Also, the final set of override cleanups.
2010-03-03 15:34:57 -05:00
JD Horelick 565f4362f2 A couple more chm_hidden cleanups/fixes. 2010-03-03 15:16:06 -05:00
JD Horelick 1cdd8fdfd7 Framework for hidden (only opers can see/set them) chmodes.
The first one of these is +M and the actual extension which handles
+M will be added next commit.
2010-03-03 14:35:54 -05:00
JD Horelick b869e117f0 Woohoo! Override is complete barring a few possible cleanups in the futures. 2010-03-03 14:11:53 -05:00
JD Horelick 4ed822ed95 Add override support to ban/quiet, owner, op, halfop and voice. 2010-03-03 13:52:31 -05:00
JD Horelick ee36f72f5d I fail. Move the epiration of +p statement lower so it actually...works. 2010-03-03 03:43:16 -05:00
B.Greenham e6f2e49e86 Fix the typos in the last commit so it compiles and works. 2010-03-03 01:00:07 -05:00
B.Greenham e787d3a226 Add conf options for swhois and operstring, though they don't do anything yet. 2010-03-03 00:52:13 -05:00
JD Horelick 1332a0ef97 Make +p expiry more robust 2010-03-02 20:49:51 -05:00
JD Horelick 9ace21a74d First step of expiry of +p crap. 2010-03-02 20:33:58 -05:00
JD Horelick eccd1c58d2 Initial support for 'noisy' oper-override of channel modes, using omode-type code. Supports simple modes at present. 2010-03-02 19:54:59 -05:00
B.Greenham 08e35f665f Add operator::vhost option. 2010-03-02 18:46:08 -05:00
B.Greenham 220c9db54d Add general::default_operhost. 2010-03-02 01:57:25 -05:00
B.Greenham 1a9821cd51 Make it so that halfops cannot set +-h 2010-03-01 20:12:11 -05:00
B.Greenham 5ad94b5000 Add channel::exemptchanops, and make +cCDTNG support it. 2010-03-01 02:43:55 -05:00
B.Greenham 23b98f3f5a Add blank +K (norepeat) chmode, though it does nothing yet. 2010-02-28 23:06:42 -05:00
B.Greenham 0eceaff17a Borrow some ircd-seven code to create channel::use_local_channels. 2010-02-28 22:42:59 -05:00
Jilles Tjoelker a04002a292 Fix memory leak on /rehash bans.
We do not have the 'oper' field in klines yet.
2010-02-28 16:45:25 +01:00
B.Greenham 82f8e812f5 Add full support for +a (owner) and +h (halfop) chmodes. 2010-02-28 02:35:48 -05:00
B.Greenham fc5ba33325 Fix a couple typos. 2010-02-27 23:47:39 -05:00
B.Greenham 154760066c There's no reason to use get_channel_access() in chm_forward, use is_any_op() instead. 2010-02-27 23:44:14 -05:00
B.Greenham c63f75891b Update burst_TS6() for +ah. 2010-02-27 23:10:04 -05:00
B.Greenham da77e1eed9 Update change_nick_user_host() to support +ah. 2010-02-27 23:04:32 -05:00
B.Greenham b8643345db Update find_channel_status() for halfop and owner. 2010-02-27 22:50:41 -05:00
B.Greenham 5af82425e0 Add +ah to the 005, if they are enabled. 2010-02-27 22:32:19 -05:00
B.Greenham 40c6b59b63 Add is_halfop() and is_owner() and start using them in the new functions. 2010-02-27 21:53:46 -05:00
B.Greenham b3b2ed9780 Add can_kick_deop() and use it in m_kick. 2010-02-27 21:27:05 -05:00
B.Greenham 46f0c51863 Add config options for owner and halfop. 2010-02-27 20:05:07 -05:00
B.Greenham bbc6973347 Move is_chanop_voiced() to a function in channels.c in preperation for +ah. 2010-02-27 19:40:52 -05:00
B.Greenham d1c7eccf6a Add is_any_op() in preperation for adding +ah, start using it instead of is_chanop() in a few places. 2010-02-27 19:20:01 -05:00
B.Greenham 846aa234b8 Add the +J channelmode and config options, though they don't do anything yet. 2010-02-26 00:30:39 -05:00
B.Greenham 99c780941a Fix everything I broke with the last three commits and make +G work for real. 2010-02-25 20:36:03 -05:00
B.Greenham c279d43b75 Add has_common_channel(), which is needed by umode +G. 2010-02-25 19:15:13 -05:00
B.Greenham 61ffa214b4 Add umode +G, soft callerid. 2010-02-25 17:57:12 -05:00
JD Horelick a4f6509ce1 more override stuff 2010-02-25 16:15:17 -05:00
JD Horelick 13a467bb98 Override part one. 2010-02-25 16:01:03 -05:00
JD Horelick afe430eebb Backed out changeset 677d7b5cbbcc 2010-02-25 15:47:08 -05:00
JD Horelick c7c1673d10 bad 2010-02-25 15:46:42 -05:00
JD Horelick cff17f66fa branch merge 2010-02-25 15:13:24 -05:00
JD Horelick da3ba37e04 Backed out changeset 0d7b5f2ac591 2010-02-25 15:13:12 -05:00
JD Horelick 4355dbd3c9 branch merge 2010-02-25 15:12:18 -05:00
JD Horelick 47fab428b1 Backed out changeset 65db6ca26281 2010-02-25 15:11:43 -05:00
B.Greenham 2b3c7c29c3 Add chmode +G, which blocks messages in all caps. 2010-02-25 01:51:28 -05:00
B.Greenham ea4041ece9 Automated merge with ssh://shadowircd/uranium/shadowircd/ 2010-02-25 01:14:49 -05:00
B.Greenham afd4834b50 Add chmode +N, which prevents nickchanges. 2010-02-25 01:14:38 -05:00
JD Horelick 13ec57db15 autochanmodes support 2010-02-24 22:18:13 -05:00
JD Horelick 44a8fbc29e Actually add +p umode and expiry code. It currently does nothing though. 2010-02-24 21:53:45 -05:00
JD Horelick 5974ba0c55 Add the config handling code for expire_override_time config option.
Part one of override stuff. This is gonna be painful.
2010-02-24 20:28:17 -05:00
B.Greenham 837a020a0c Add general::secret_channels_in_whois. 2010-02-23 22:38:35 -05:00
JD Horelick 45b9f1cbc0 Added channel::host_in_topic. 2010-02-23 20:19:58 -05:00
JD Horelick c3a0fde28f Added cycle_host_change option. 2010-02-23 19:50:45 -05:00
B.Greenham f9e91eceaa Add chmode +E, which prevents ops from using /kick on channels where it is set. 2010-02-23 18:14:43 -05:00
JD Horelick aa35afbb1f Some changes to bring the code i moved all around up-to-date. 2010-02-23 04:12:11 -05:00
B.Greenham be2d3c114f Make the last commit actually compile. 2010-02-23 03:08:58 -05:00
B.Greenham 88b63e6506 Make the target user's modes show up in whois. 2010-02-23 02:59:35 -05:00
JD Horelick 074fe45ad7 Some quick user_join() call fixes. 2010-02-23 02:56:57 -05:00
JD Horelick 824455aba6 Forgot to constify 2010-02-23 02:53:19 -05:00
JD Horelick 3472ff3fec Add an include 2010-02-23 02:52:53 -05:00
JD Horelick 9230426e7a More moving 2010-02-23 02:52:01 -05:00
JD Horelick 67b90240c4 move user_join() to channels.c 2010-02-23 02:48:33 -05:00
JD Horelick 080bb5cf25 Start moving parts of join to channels.c so they can be used in more places. 2010-02-23 02:41:26 -05:00
JD Horelick 2c489d8e65 Backed out changeset 199eadae216a 2010-02-23 02:04:53 -05:00
JD Horelick 6d3e983251 Compile fix 2010-02-23 02:01:19 -05:00
B.Greenham 7e6c9180da Add chmode +D, which blocks CTCP ACTION. 2010-02-23 01:08:42 -05:00
B.Greenham 92504d43b1 Merge. 2010-02-23 00:54:16 -05:00
B.Greenham 6afd4b916f Add chmode +T, which blocks notices. 2010-02-23 00:49:24 -05:00
JD Horelick e54944ef98 Whoops, small fail. 2010-02-23 00:43:34 -05:00
JD Horelick 87f58b4ffb Add oper autojoin (with auth::autojoin_opers config option). 2010-02-23 00:41:14 -05:00
JD Horelick fa72cee166 Added autojoin-on-connect (with auth::autojoin config option). 2010-02-23 00:22:37 -05:00
B.Greenham 930629c5f2 Add umode +B, which marks users with it set as a bot in whois. 2010-02-23 00:21:24 -05:00
B.Greenham 2678f87a51 Fix some indentation I messed up while adding umode +C. 2010-02-22 23:10:36 -05:00
B.Greenham 854f6bd0af Add umode +V, which blocks invites to anyone with it set. 2010-02-22 22:45:37 -05:00
B.Greenham ccfc9b567d Add umode +C, which blocks CTCPs to anyone with it set. 2010-02-22 22:14:47 -05:00
Jilles Tjoelker c6d5c019d0 Remove more old kline.conf stuff.
Make sure to recompile modules, stuff has been removed
close to the start of ConfigFileEntry.
2010-02-22 19:31:05 +01:00
Jilles Tjoelker 918a0e1d39 Remove code to write bans to csv files. 2010-02-22 19:09:46 +01:00
Jilles Tjoelker b6698246ba spambot checks: Fix excessive expiry in some cases. 2010-02-21 01:29:41 +01:00
William Pitcock ba29286a4a Do not try to free the alias dict if it does not exist. 2010-02-18 18:38:26 -06:00
William Pitcock 6d194359ab Change license version in version.c.SH (GPLv1 -> GPLv2) so that it agrees with the other documentation. 2010-02-17 23:05:47 -06:00
William Pitcock 8afd32ce07 s/o:lines/operator blocks/ 2010-02-17 23:01:58 -06:00
William Pitcock e4c72f7919 Clarify ERR_NOOPERHOST and convert it to use sendto_one_numeric(). 2010-02-17 06:51:41 -06:00
William Pitcock d8a023eddd Add support for client certificate fingerprints in o:lines. 2010-02-17 06:41:41 -06:00
Jilles Tjoelker 878733fd68 Move target change code to src/tgchange.c,
so we can use it for /invite as well.
2010-02-15 21:58:34 +01:00
Jilles Tjoelker 3002877654 target change: Overwrite the least recently used target with a new one. 2010-02-15 00:31:17 +01:00
JD Horelick 957ee03b56 English fix to fix the fix i made about 80 minutes ago.
I suck at a/an cometimes. Also, fix.
2010-02-08 18:04:54 -05:00
JD Horelick b17999e11b One or 2 English language cleanups. Less than I thought there were. 2010-02-08 16:28:08 -05:00
Jilles Tjoelker 54656d7650 Pass certfp to other servers and show it in whois. Do not show it on connect.
The server protocol for this is
:<uid> ENCAP * CERTFP :<40 hex chars>
both in new user introductions and in burst.

As in oftc-hybrid, only the user themselves and opers can see the certfp.

Displaying the certfp on connect seems unnecessary to me,
the user can whois themselves if needed.
2010-02-06 00:18:27 +01:00
Jilles Tjoelker f7b5446177 Apply ratbox3 workaround for too permissive inet_pton6():
Any kline (or various other things) containing * or ? is
a mask kline and not an IP kline. Ideally, rb_inet_pton_sock()
would return failure for those, but in practice this is not
always the case for IPv6.

Such a kline that is erroneously treated as an IP line
likely matches way fewer IPs than expected.
2010-02-03 00:44:51 +01:00
William Pitcock 09fb2d185d Clarify CertFP message. 2010-01-31 17:35:15 -06:00
Jilles Tjoelker a099270d45 Add certfp support to libratbox and ssld.
This lets a user connect with a client certificate, and
passes the certificate's fingerprint to ircd, which
currently just notices it to the user.

A new ssld->ircd message 'F' is used to pass on the
fingerprint.

This is only for OpenSSL for now, not GNUTLS.
2010-01-31 19:04:20 +01:00
William Pitcock 436cf01700 Automated merge with ssh://hg.atheme.org//hg/charybdis 2010-01-30 19:21:28 -06:00
William Pitcock 4b253d3bd7 modreload: Causing an entire 50,000 user network to crash due to user-error is a bad idea, don't let it happen again by not allowing paths in /modreload. 2010-01-30 19:21:17 -06:00
Jilles Tjoelker cfc8334833 Slightly tighten auth{} duplicate check:
If the existing auth{} block has no auth_user, it will
trump any auth{} block for the same u@h.
2010-01-31 01:40:43 +01:00
Jilles Tjoelker 67cc1f0c96 Take auth_user into account when detecting redundant/duplicate auth{}.
from ircd-seven (spb)
2010-01-31 01:36:37 +01:00
Jilles Tjoelker 66a1809526 No need to be paranoid about clearing auth_user.
It is a username, not a password.
2010-01-31 01:30:25 +01:00
Jilles Tjoelker e37a8398ce Fix memory leak with auth_user.
from ircd-seven (spb)
2010-01-31 01:29:08 +01:00
Jilles Tjoelker 6d70eae633 Remove remnants of <foo>_t typedefs. 2010-01-30 15:57:10 +01:00
Jilles Tjoelker 7748deb557 Do not read in help files starting with a dot (including dot and dot-dot). 2010-01-22 02:02:45 +01:00