From 4d0069c3a8021c32b5bdeeec57f1d41d369587ce Mon Sep 17 00:00:00 2001
From: Alexander Barton <alex@barton.de>
Date: Mon, 16 Jan 2012 02:18:24 +0100
Subject: [PATCH] New RPL_WHOISREGNICK_MSG(307) numeric: indicate if nick is
 registered

---
 src/ngircd/irc-info.c | 6 ++++++
 src/ngircd/messages.h | 1 +
 2 files changed, 7 insertions(+)

diff --git a/src/ngircd/irc-info.c b/src/ngircd/irc-info.c
index f383dacd..a248e8a6 100644
--- a/src/ngircd/irc-info.c
+++ b/src/ngircd/irc-info.c
@@ -1108,6 +1108,12 @@ IRC_WHOIS_SendReply(CLIENT *Client, CLIENT *from, CLIENT *c)
 				Client_ID(c)))
 		return DISCONNECTED;
 
+	/* Registered nick name? */
+	if (Client_HasMode(c, 'R') &&
+	    !IRC_WriteStrClient(from, RPL_WHOISREGNICK_MSG,
+				Client_ID(from), Client_ID(c)))
+		return DISCONNECTED;
+
 	/* Idle and signon time (local clients only!) */
 	if (!Conf_MorePrivacy && Client_Conn(c) > NONE &&
 	    !IRC_WriteStrClient(from, RPL_WHOISIDLE_MSG,
diff --git a/src/ngircd/messages.h b/src/ngircd/messages.h
index c5d83367..0070e701 100644
--- a/src/ngircd/messages.h
+++ b/src/ngircd/messages.h
@@ -56,6 +56,7 @@
 #define RPL_ISON_MSG			"303 %s :"
 #define RPL_UNAWAY_MSG			"305 %s :You are no longer marked as being away"
 #define RPL_NOWAWAY_MSG			"306 %s :You have been marked as being away"
+#define RPL_WHOISREGNICK_MSG		"307 %s %s :is a registered nick"
 #define RPL_WHOISUSER_MSG		"311 %s %s %s %s * :%s"
 #define RPL_WHOISSERVER_MSG		"312 %s %s %s :%s"
 #define RPL_WHOISOPERATOR_MSG		"313 %s %s :is an IRC operator"