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