summaryrefslogtreecommitdiff
path: root/src/channel_mode.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2016-06-05 14:16:36 +0100
committerRussell King <rmk+kernel@armlinux.org.uk>2016-06-05 17:47:56 +0100
commit14630f6b4763b34ff96c091c3e55f387862af185 (patch)
tree035a58ea3b2da4767b8e638f306605a8ad992dcc /src/channel_mode.c
parent4f57d083c810f57edc0fe449b0de1f48e402107b (diff)
Convert global channel operator support to OFTC's God mode.
OFTC's God mode is very similar to the global channel operator mode, with the following differences: - gaining God mode notifies all operators - uses of God mode privileges notifies all operators - God mode times out after a configurable period - uses umode S rather than O - S is taken for SSL clients in hybrid 8.1.13. So align with OFTC's implementation, but omit these features.
Diffstat (limited to 'src/channel_mode.c')
-rw-r--r--src/channel_mode.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/channel_mode.c b/src/channel_mode.c
index b4d2373..b5c1abc 100644
--- a/src/channel_mode.c
+++ b/src/channel_mode.c
@@ -1595,7 +1595,7 @@ get_channel_access(const struct Client *source_p,
const struct Membership *member)
{
/* Let hacked servers in for now... */
- if (!MyClient(source_p) || HasUMode(source_p, UMODE_GCHANOP))
+ if (!MyClient(source_p))
return CHACCESS_CHANOP;
if (member == NULL)
@@ -1612,6 +1612,9 @@ get_channel_access(const struct Client *source_p,
return CHACCESS_HALFOP;
#endif
+ if (HasUMode(source_p, UMODE_GOD))
+ return CHACCESS_GOD;
+
return CHACCESS_PEON;
}