fixed double join bug in m_relay.c: users could join a channel having +a set multiple...
[ircu2.10.12-pk.git] / ircd / m_relay.c
index 96676cd33fab8d3fb4d0c25b6607e248ee8ee25f..3f0dcf6699cd8a37ac5c6ddf89b6e8f64c439ad1 100644 (file)
@@ -65,6 +65,8 @@ static void mode_a_join(struct Client* cptr, char *channel, int flags) {
         }
     } else {
         struct JoinBuf join;
+        if(find_member_link(chptr, cptr))
+            return; //we have already joined this channel
         joinbuf_init(&join, cptr, cptr, JOINBUF_TYPE_JOIN, 0, 0);
         joinbuf_join(&join, chptr, flags);
         del_invite(cptr, chptr);