]> jfr.im git - irc/evilnet/x3.git/commitdiff
Added support to TRACE/ADDALERT CHECKRESTRICTIONS criteria for channel mode +O and +r
authorMatthew Beeching <redacted>
Wed, 7 Jul 2010 17:38:22 +0000 (18:38 +0100)
committerMatthew Beeching <redacted>
Wed, 7 Jul 2010 17:38:22 +0000 (18:38 +0100)
ChangeLog
src/opserv.c

index d4bfef80223e3fd266f2b9eea8147237d4e9f2f2..b5802e7678e8f63f8c6bfab822f084fadf72375d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,11 @@
 /***********************************************************************
 X3 ChangeLog
 
+2010-07-07  Matthew Beeching  <jobe@mdbnet.co.uk>
+
+       * src/opserv.c: Added support to TRACE/ADDALERT CHECKRESTRICTIONS
+       criteria for channel mode +O and +r.
+
 2010-07-03  Matthew Beeching  <jobe@mdbnet.co.uk>
 
        * src/chanserv.c: Removed extra 'is' from CSMSG_SMURF_TARGET.
index ced02ef569cc677b3131bb3d49fd8dfee8cbb0b2..a9e1f99b69ff7a96567a086f0e5dc07515340186 100644 (file)
@@ -1460,6 +1460,21 @@ opserv_svsjoin(struct userNode *target, UNUSED_ARG(char *src_handle), UNUSED_ARG
             return; /* channel is invite only */
         }
 
+        if (!IsOper(target) && (channel->modes & MODE_OPERSONLY)) {
+            return; /* user is not oper and channel is opers only */
+        }
+
+        /* Update to check if user is umode +a */
+        if (!IsOper(target) && (channel->modes & MODE_ADMINSONLY)) {
+            return; /* user is not admin and channel is admin only */
+        }
+
+        if (target->handle_info && (channel->modes & MODE_REGONLY)) {
+            return; /* user is not authed and channel is authed only users */
+        }
+
+        /* Add test for channel mode +Z with user mode -z */
+
         if (channel->limit > 0) {
             if (channel->members.used >= channel->limit) {
                 return; /* channel is invite on */