]> jfr.im git - solanum.git/blobdiff - modules/core/m_join.c
remove unused variables
[solanum.git] / modules / core / m_join.c
index f74d7dd5b69b92392ea4d7d66884258cd6aaa9d8..ae75f86fb549c8d5bee1ecf091765e38992d0b3c 100644 (file)
@@ -74,18 +74,12 @@ static void do_join_0(struct Client *client_p, struct Client *source_p);
 static bool check_channel_name_loc(struct Client *source_p, const char *name);
 static void send_join_error(struct Client *source_p, int numeric, const char *name);
 
-static void set_final_mode(struct Mode *mode, struct Mode *oldmode);
+static char *set_final_mode(char *mbuf, char *parabuf, struct Mode *mode, struct Mode *oldmode);
 static void remove_our_modes(struct Channel *chptr, struct Client *source_p);
 
 static void remove_ban_list(struct Channel *chptr, struct Client *source_p,
                            rb_dlink_list * list, char c, int mems);
 
-static char modebuf[MODEBUFLEN];
-static char parabuf[MODEBUFLEN];
-static const char *para[MAXMODEPARAMS];
-static char *mbuf;
-static int pargs;
-
 /* Check what we will forward to, without sending any notices to the user
  * -- jilles
  */
@@ -183,9 +177,8 @@ m_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
                        continue;
                }
 
-               /* check it begins with # or &, and local chans are disabled */
-               else if(!IsChannelName(name) ||
-                       ( ConfigChannel.disable_local_channels && name[0] == '&'))
+               /* check it begins with a valid channel prefix per policy. */
+               else if (!IsChannelName(name))
                {
                        sendto_one_numeric(source_p, ERR_NOSUCHCHANNEL,
                                           form_str(ERR_NOSUCHCHANNEL), name);
@@ -400,6 +393,8 @@ m_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p
 static void
 ms_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
+       static char modebuf[MODEBUFLEN];
+       static char parabuf[MODEBUFLEN];
        struct Channel *chptr;
        static struct Mode mode;
        time_t oldts;
@@ -407,6 +402,7 @@ ms_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
        bool isnew;
        bool keep_our_modes = true;
        rb_dlink_node *ptr, *next_ptr;
+       char *mbuf;
 
        /* special case for join 0 */
        if((parv[1][0] == '0') && (parv[1][1] == '\0') && parc == 2)
@@ -461,7 +457,7 @@ ms_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
        /* Lost the TS, other side wins, so remove modes on this side */
        if(!keep_our_modes)
        {
-               set_final_mode(&mode, &chptr->mode);
+               mbuf = set_final_mode(mbuf, parabuf, &mode, &chptr->mode);
                chptr->mode = mode;
                remove_our_modes(chptr, source_p);
                RB_DLINK_FOREACH_SAFE(ptr, next_ptr, chptr->invites.head)
@@ -509,6 +505,8 @@ ms_join(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_
 static void
 ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
+       static char modebuf[MODEBUFLEN];
+       static char parabuf[MODEBUFLEN];
        static char buf_uid[BUFSIZE];
        static const char empty_modes[] = "0";
        struct Channel *chptr;
@@ -532,6 +530,9 @@ ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
        int i, joinc = 0, timeslice = 0;
        static char empty[] = "";
        rb_dlink_node *ptr, *next_ptr;
+       char *mbuf;
+       int pargs;
+       const char *para[MAXMODEPARAMS];
 
        if(parc < 5)
                return;
@@ -705,7 +706,7 @@ ms_sjoin(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source
                        chptr->join_count = chptr->join_delta = 0;
        }
 
-       set_final_mode(&mode, oldmode);
+       mbuf = set_final_mode(mbuf, parabuf, &mode, oldmode);
        chptr->mode = mode;
 
        /* Lost the TS, other side wins, so remove modes on this side */
@@ -1038,8 +1039,8 @@ send_join_error(struct Client *source_p, int numeric, const char *name)
        }
 }
 
-static void
-set_final_mode(struct Mode *mode, struct Mode *oldmode)
+static char *
+set_final_mode(char *mbuf, char *parabuf, struct Mode *mode, struct Mode *oldmode)
 {
        int dir = MODE_QUERY;
        char *pbuf = parabuf;
@@ -1158,6 +1159,8 @@ set_final_mode(struct Mode *mode, struct Mode *oldmode)
                pbuf += len;
        }
        *mbuf = '\0';
+
+       return mbuf;
 }
 
 /*
@@ -1176,8 +1179,8 @@ remove_our_modes(struct Channel *chptr, struct Client *source_p)
        char *lpara[MAXMODEPARAMS];
        int count = 0;
        int i;
+       char *mbuf = lmodebuf;
 
-       mbuf = lmodebuf;
        *mbuf++ = '-';
 
        for(i = 0; i < MAXMODEPARAMS; i++)
@@ -1276,6 +1279,7 @@ remove_ban_list(struct Channel *chptr, struct Client *source_p,
        char *pbuf;
        int count = 0;
        int cur_len, mlen, plen;
+       char *mbuf;
 
        pbuf = lparabuf;