]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/numeric.c
Use correct sender as target for ISUPPORT replies on "VERSION"
[ngircd-alex.git] / src / ngircd / numeric.c
index f2c61e8a8cb46ea0b7b7649ad73b76c7f9db438a..ad7e0429acb32aca1da16b80e65d42b5322c1ac6 100644 (file)
@@ -47,7 +47,7 @@ Announce_Channel(CLIENT *Client, CHANNEL *Chan)
 {
        CL2CHAN *cl2chan;
        CLIENT *cl;
-       char str[LINE_LEN], *ptr;
+       char str[COMMAND_LEN], *ptr;
        bool njoin, xop;
 
        /* Check features of remote server */
@@ -68,21 +68,21 @@ Announce_Channel(CLIENT *Client, CHANNEL *Chan)
                                strlcat(str, ",", sizeof(str));
 
                        /* Prepare user prefix (ChanOp, voiced, ...) */
-                       if (xop && strchr(Channel_UserModes(Chan, cl), 'q'))
+                       if (xop && Channel_UserHasMode(Chan, cl, 'q'))
                                strlcat(str, "~", sizeof(str));
-                       if (xop && strchr(Channel_UserModes(Chan, cl), 'a'))
+                       if (xop && Channel_UserHasMode(Chan, cl, 'a'))
                                strlcat(str, "&", sizeof(str));
-                       if (strchr(Channel_UserModes(Chan, cl), 'o'))
+                       if (Channel_UserHasMode(Chan, cl, 'o'))
                                strlcat(str, "@", sizeof(str));
-                       if (xop && strchr(Channel_UserModes(Chan, cl), 'h'))
+                       if (xop && Channel_UserHasMode(Chan, cl, 'h'))
                                strlcat(str, "%", sizeof(str));
-                       if (strchr(Channel_UserModes(Chan, cl), 'v'))
+                       if (Channel_UserHasMode(Chan, cl, 'v'))
                                strlcat(str, "+", sizeof(str));
 
                        strlcat(str, Client_ID(cl), sizeof(str));
 
                        /* Send the data if the buffer is "full" */
-                       if (strlen(str) > (LINE_LEN - CLIENT_NICK_LEN - 8)) {
+                       if (strlen(str) > (sizeof(str) - CLIENT_NICK_LEN - 8)) {
                                if (!IRC_WriteStrClient(Client, "%s", str))
                                        return DISCONNECTED;
                                snprintf(str, sizeof(str), "NJOIN %s :",
@@ -232,8 +232,8 @@ Send_CHANINFO(CLIENT * Client, CHANNEL * Chan)
        if (!*modes && !*topic)
                return CONNECTED;
 
-       has_k = strchr(modes, 'k') != NULL;
-       has_l = strchr(modes, 'l') != NULL;
+       has_k = Channel_HasMode(Chan, 'k');
+       has_l = Channel_HasMode(Chan, 'l');
 
        /* send CHANINFO */
        if (!has_k && !has_l) {