repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 0f490b5caec3439a0e67aa989eea26b352770c94:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 0f490b5caec3439a0e67aa989eea26b352770c94
Author: LucentW 
Date:   Wed May 13 20:26:14 2015 +0000

    Implement numeric RPL_LISTSTART(321)

    lightIRC and other clients expecting RPL_LISTSTART should now behave correctly.

    Closes #207.

    (cherry picked from commit 0680ce5fd99bc643651d1433bcdaf271aeb73c46)

diff --git a/src/ngircd/irc-channel.c b/src/ngircd/irc-channel.c
index c7a3e1b31e7f8b81e79f8d8854446965fb0f3351..
index ..4ea25bb044e61d7744e0d427faac7a35fa44e3f8 100644
--- a/src/ngircd/irc-channel.c
+++ b/src/ngircd/irc-channel.c
@@ -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)
diff --git a/src/ngircd/messages.h b/src/ngircd/messages.h
index a5bc2c7ae8a90daea955bc2cceedcd0867387fb9..
index ..8eba60ee6f13a119157e2e748789e50734ab8a37 100644
--- a/src/ngircd/messages.h
+++ b/src/ngircd/messages.h
@@ -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"

-----END OF PAGE-----