Commit Graph

545 Commits

Author SHA1 Message Date
William Pitcock 28805dc5fc Add propagation of MLOCK state for simple modes.
Special modes like +j can be tracked easily just by adding the necessary
code to parse them to set_channel_mlock().  This will cover propagation
as well.
2010-03-07 23:13:39 -06:00
William Pitcock 24cf9d8a28 Fix typo. 2010-03-07 22:30:30 -06:00
William Pitcock 27958781f6 Add MLOCK capability token. 2010-03-07 22:25:41 -06:00
William Pitcock dc45456c96 struct Channel: add mode_lock structure to the channel object. 2010-03-07 21:41:06 -06:00
William Pitcock 34f6a40e79 struct Mode: add off_mode bitfield to describe disabled channel modes. 2010-03-07 21:40:34 -06:00
William Pitcock 22caef5e58 Add RPL_CHANNELMLOCKIS for ircd-side MLOCK enforcement. 2010-03-07 21:35:54 -06:00
Jilles Tjoelker 3721c57468 Show the services login name in WHOWAS.
The numeric is the same (330) as used in WHOIS.

This takes at most half a megabyte of memory (large network, 30 char nicks).
2010-08-29 22:30:54 +02:00
Jilles Tjoelker 9e94d9ea13 Add target change for channels.
This has a separate enabling option channel::channel_target_change.

It applies to PRIVMSG, NOTICE and TOPIC by unvoiced unopped non-opers.

The same slots are used for channels and users.
2010-08-28 20:02:42 -04:00
B.Greenham d7a3d23cdd Add channel::admin_on_channel_create, which gives users creating new channels +ao instead of +o, if enabled. 2010-07-29 14:22:33 -04:00
JD Horelick 6898ce9dde Add general::hide_channel_below_users option.
This allows server owners to set how many users must be in a channel before
/LIST will show it.
2010-07-10 01:28:21 -04:00
JD Horelick 33736ea75f Tweak auto-accept:
* does not apply to NOTICE (as those may well be automated)
* mirrors +g behaviour so that no useless accept entries are added for services
* respects max_accept, if it would be exceeded the message is dropped with numeric 494
* check moved up so this is checked before floodcount/tgchange

Pulled from Charybdis upstream changeset 1388:b1ef26176350 done by jilles.
2010-07-04 15:27:34 -04:00
Jilles Tjoelker 70fd7fc9fb BAN: Reject bans with insufficient non-wildcard characters.
Such bans are not applied locally, but are propagated normally.
They can only be removed on a server that applies them.

Note that normally KLINE will not accept such bans.
This is mainly for services, differing min_wildcard and
ircd changes.
2010-03-06 01:45:41 +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 ebae0e200e ConfItem.next is not used, remove it. 2010-03-03 23:36:28 +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
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 069f104a2e Add shared::modules option, remote module stuff coming later/soon. 2010-03-24 15:50:15 -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
B.Greenham 114406d021 Add strip_unprintable, a function that strips all unprintable characters from a string. 2010-03-20 12:39:39 -04:00
B.Greenham 473d0842db Fix some compiler warnings that I generated by accidentally copying something twice. 2010-03-17 02:19:18 -04:00
JD Horelick ceb3eb1de9 Add rehash to the shared all flag because all should prolly = all. 2010-03-14 15:42:28 -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 c1c91f9438 s/owner/admin/ throughout the source code and docs. 2010-03-07 23:18:39 -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 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 6f659342dc Add channel metadata system. 2010-03-04 15:08:16 -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 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
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 70e4cb8615 Fix a bug I introduced by being a massive idiot. 2010-03-01 15:01: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
B.Greenham 82f8e812f5 Add full support for +a (owner) and +h (halfop) chmodes. 2010-02-28 02:35:48 -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 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 0a9c5766e7 Compile fix 2010-02-25 16:24:06 -05:00
JD Horelick 13a467bb98 Override part one. 2010-02-25 16:01:03 -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
B.Greenham 88b63e6506 Make the target user's modes show up in whois. 2010-02-23 02:59:35 -05:00
JD Horelick 677e21a450 Constify the header too :D 2010-02-23 02:53:44 -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
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 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 3d17692d72 Remove some obsolete paths from config.h. 2010-02-22 23:53:45 +01: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
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 7eb9307794 target change: Allow free replies.
When a user receives a private message, notice or RPL_UMODEGMSG,
add the source to a special set of 5 target slots.
These slots are checked in the normal way when sending messages,
allowing a reply without using up a free target.

This feature will not be very useful if a user is being messaged
by many different users; to help this, messages blocked entirely
by +g or +R do not affect the targets. CTCP replies also remain
free in terms of targets.
2010-02-15 01:07:07 +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
Jilles Tjoelker d29b1834c3 Make the number of targets tracked for target change a #define. 2010-02-13 15:18:17 +01: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 6d70eae633 Remove remnants of <foo>_t typedefs. 2010-01-30 15:57:10 +01:00
William Pitcock 92a7995129 Merge +C (no CTCP to channels) from ircd-seven. 2010-01-19 02:11:04 -06:00
William Pitcock 2c9a27c46a Add bandb IRCd APIs. 2010-01-07 17:10:16 -06:00
William Pitcock dbc4e40434 Add DBPATH. 2010-01-07 16:55:34 -06:00
William Pitcock 042acc47bb Run autoreconf. 2010-01-07 16:51:32 -06:00