Commit Diff


commit - 5cf5ba31eb0cae6c28d5754f6e62956f83582b06
commit + 12cd554af1709c44f35024d7d2fc368fb22f133d
blob - 64807e7fec6e2367927f93b1e83c241a09e03f7b
blob + 6213d7a13c5fb5d0ed7e2cd8f880e50e872d1003
--- ChangeLog
+++ ChangeLog
@@ -12,6 +12,8 @@
 
 ngIRCd-dev
 
+  - Fix Bug: 85: "WHO #SecretChannel" that user is not a member of now returns
+    proper RPL_ENDOFWHO_MSG instead of nothing. (Ali Shemiran)
   - Implemented IRC commands SERVICE, SERVLIST, and SQUERY as dummy functions
     to be even more RFC-compliant. Closes bug 74.
   - Fixed Bug 75: KICK now handles comma-delimited lists.
blob - 93c43f6a35744f65c01ec054cec00f37d839be21
blob + 86e1ace2a56ef0efe49fcce8580ab09e60b50ca2
--- src/ngircd/irc-info.c
+++ src/ngircd/irc-info.c
@@ -738,7 +738,7 @@ IRC_Send_WHO(CLIENT *Client, CHANNEL *Chan, bool OnlyO
 
 	/* Secret channel? */
 	if (!is_member && strchr(Channel_Modes(Chan), 's'))
-		return CONNECTED;
+		return IRC_WriteStrClient(Client, RPL_ENDOFWHO_MSG, Client_ID(Client), Channel_Name(Chan));
 
 	cl2chan = Channel_FirstMember(Chan);
 	for (; cl2chan ; cl2chan = Channel_NextMember(Chan, cl2chan)) {
blob - eeace761a0a9d70a1414a4cb7b2b4a4a6a42ac5f
blob + 4d918e0eec1d0975e17adfe387a1c9fa6efca096
--- src/testsuite/ngircd-test.conf
+++ src/testsuite/ngircd-test.conf
@@ -28,5 +28,10 @@
 	Name = #TopicChannel
 	Modes = t
 	Topic = the topic
+	
+[CHANNEL]
+	Name = #SecretChannel
+	Modes = s
+	Topic = A secret Channel
 
 # -eof-
blob - aafa7956cee5ebeacc4538796d05f80559967ebe
blob + 2e1484479195988d00f14772b42e00f6d3ac9d91
--- src/testsuite/who-test.e
+++ src/testsuite/who-test.e
@@ -152,7 +152,17 @@ expect {
 	timeout { exit 1 }
 	":ngircd.test.server 352 nick \* * localhost ngircd.test.server nick H\* :0 Real Name"
 }
+expect {
+	timeout { exit 1 }
+	"315"
+}
 
+send "who #SecretChannel\r"
+expect {
+	timeout { exit 1 }
+	"315"
+}
+
 send "quit\r"
 expect {
 	timeout { exit 1 }