Commit Graph

101 Commits

Author SHA1 Message Date
Kyle Jonhson 27b08207de channel: refactor fe3c1c828e and fix surrounding indentation 2013-11-15 05:00:40 +00:00
Sam Dodrill 8e1c8b7543 src/channel: Fix for autojoin_opers segfault 2013-11-07 11:39:43 -08:00
Sam Dodrill 2cfa339185 Explicitly allow channel admins to kick eachother 2013-10-10 10:55:42 -07:00
Sam Dodrill 6e14174c95 Disallow non-channel ops from kicking users 2013-10-09 13:13:51 -07:00
Sam Dodrill 0814442111 away-notify and away rate limiting added
Referenced:

atheme/charybdis@c5bbc60375 : Add
away-notify client capability.
atheme/charybdis@d42e6915cf : Pace aways.
atheme/charybdis@725403fd7f : Don't end
the flood grace period with the first AWAY.
atheme/charybdis@dc0fd46236 : Ensure AWAY
pacing only affects local clients.
2013-10-04 21:32:00 -07:00
Sam Dodrill 0d45b7860f Merge account-notify and extended-join client capabilities 2013-09-29 05:24:52 -07:00
Sam Dodrill 172deacb06 Finalize behavor of channel admins
Channel admins are able to kick channel admins
2013-09-13 19:52:30 -07:00
Sam Dodrill aa294a3a54 Support for channel owner mode added
This is a lot like the previous channel owner mode patch, except the
documentation that previously said "admin" now says "owner" in comments.

src/channel: Kicking logic for owner mode fixed

src/channel: Document the kick/deop logic

decruft: remove temporary files
2013-09-13 11:45:38 -07:00
JD Horelick 4b631c0586 Send ERR_TOOMANYCHANNELS for each channel join that fails due to channel limits.
The reason why we do this is because some clients are dependent on receiving a numeric
for every channel join failure, even due to this limit where it can be assumed that
subsequent joins failed.
2010-12-15 00:02:47 -05:00
B.Greenham 5323ec7352 Move flood_attack_channel to channel.c so it can be used outside m_message.c 2010-12-11 16:11:54 -05:00
B.Greenham 4023293674 Merge. 2010-10-11 11:58:39 -04:00
B.Greenham 90728edb58 Backed out changeset 3097ade953f5
Backout modesets.

They're overly invasive and a bit uglier than is required.
The same thing can be accomplished in a better way with another method.
2010-10-11 11:58:21 -04:00
B.Greenham 1fe75e33cc mode api: Remove most modes from the chmode_table, and have them initialized in modeset files.
Modeset files are modules stored in shadowircd/modes. All they do is initalize
a set of modes on load, and orphan said modes on unload.

All cmodes not included in ircd-ratbox are now located in modeset files, rather
than being in the core. These modes no longer simply use defines, their
locations are stored in a the new struct module_modes. Each of these is set
when intializing the mode in the modeset files, and set to 0 when orphaning
the mode upon unloading the modeset file.

In addition, use_forward has been removed, as it is now obsoleted by modesets.
2010-07-02 19:09:46 -04:00
JD Horelick 133755685e Removal of ancient SVN ID's part one 2010-06-10 21:22:44 -04:00
Stephen Bennett b72bd23a03 Rework ircd-side MLOCK enforcement: instead of trying to track modes locked on or off, instead keep a simple list of mode letters that are locked, and reject any change to those modes. 2010-04-30 22:01:21 +01:00
JD Horelick ea84bfdeff Backed out changeset c04f6578869c 2010-09-11 13:31:00 -04:00
JD Horelick e09ea16973 "Import" changeset 1346:c57955c5225e from charybdis by hand. 2010-09-11 13:23:35 -04:00
B.Greenham 2498a1b577 Fix some valgrind warnings. 2010-05-27 18:03:51 -04:00
JD Horelick 1add004b97 Change kicknorejoin to be hardcoded to 2 seconds instead of a
configurable opton.
2010-05-21 04:20:45 -04:00
JD Horelick f0e0e5672d Backed out changeset 9bd802724b74 2010-05-21 04:08:05 -04:00
JD Horelick 446c7d4f57 Remove +J chmode (KICKNOREJOIN) 2010-05-21 03:29:07 -04:00
Jilles Tjoelker 9b9d818b32 Add propagated resvs, like klines and xlines. 2010-03-27 16:13:57 +01:00
B.Greenham d76346d3d4 Make channel::admin_on_channel_create only work if admin is enabled. 2010-07-29 14:26:18 -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
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 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
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 a8afd89db2 Made overriding join send snotes. 2010-03-05 19:32:17 -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 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 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
B.Greenham 5ad94b5000 Add channel::exemptchanops, and make +cCDTNG support it. 2010-03-01 02:43:55 -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 b8643345db Update find_channel_status() for halfop and owner. 2010-02-27 22:50:41 -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 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 99c780941a Fix everything I broke with the last three commits and make +G work for real. 2010-02-25 20:36:03 -05:00