]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/channel.c
Add chmode +N, which prevents nickchanges.
[irc/rqf/shadowircd.git] / src / channel.c
index 9134b57783d52941f84b14dcb6c2d8a60c9e0384..1e35f3d8f8ae97302eef6ea20ed08859088ab0b5 100644 (file)
@@ -904,6 +904,32 @@ find_bannickchange_channel(struct Client *client_p)
        return NULL;
 }
 
+/* find_nonickchange_channel()
+ * Input: client to check
+ * Output: channel preventing nick change
+ */
+struct Channel *
+find_nonickchange_channel(struct Client *client_p)
+{
+       struct Channel *chptr;
+       struct membership *msptr;
+       rb_dlink_node *ptr;
+
+       if (!MyClient(client_p))
+               return NULL;
+
+       RB_DLINK_FOREACH(ptr, client_p->user->channel.head)
+       {
+               msptr = ptr->data;
+               chptr = msptr->chptr;
+               if (is_chanop_voiced(msptr))
+                       continue;               
+               if (chptr->mode.mode & MODE_NONICK)
+                       return chptr;
+       }
+       return NULL;
+}
+
 /* void check_spambot_warning(struct Client *source_p)
  * Input: Client to check, channel name or NULL if this is a part.
  * Output: none