Implement numeric RPL_LISTSTART(321)
authorLucentW <lucent@zebes.info>
Wed, 13 May 2015 20:26:14 +0000 (20:26 +0000)
committerAlexander Barton <alex@barton.de>
Sat, 16 May 2015 18:29:10 +0000 (20:29 +0200)
lightIRC and other clients expecting RPL_LISTSTART should now behave correctly.

Closes #207.

(cherry picked from commit 0680ce5fd99bc643651d1433bcdaf271aeb73c46)

src/ngircd/irc-channel.c
src/ngircd/messages.h

index c7a3e1b..4ea25bb 100644 (file)
@@ -597,6 +597,10 @@ IRC_LIST( CLIENT *Client, REQUEST *Req )
                }
        }
 
+       /* Send list head */
+       if (!IRC_WriteStrClient(from, RPL_LISTSTART_MSG, Client_ID(from)))
+               return DISCONNECTED;
+
        while (pattern) {
                /* Loop through all the channels */
                if (Req->argc > 0)
index a5bc2c7..8eba60e 100644 (file)
@@ -67,6 +67,7 @@
 #define RPL_WHOISIDLE_MSG              "317 %s %s %lu %lu :seconds idle, signon time"
 #define RPL_ENDOFWHOIS_MSG             "318 %s %s :End of WHOIS list"
 #define RPL_WHOISCHANNELS_MSG          "319 %s %s :"
+#define RPL_LISTSTART_MSG              "321 %s Channel :Users  Name"
 #define RPL_LIST_MSG                   "322 %s %s %ld :%s"
 #define RPL_LISTEND_MSG                        "323 %s :End of LIST"
 #define RPL_CHANNELMODEIS_MSG          "324 %s %s +%s"