Commit Diff


commit - 360a254be0e55e975998d0f3a5ff301ac3346f72
commit + 8349a1c0d94eab61b872bb4625cbdc55feb0b86f
blob - fa35cdd0f29d7742d92c169f6ce992a56eaa1ca5
blob + 1776936024c23d85232eaaa09805019f93aac134
--- src/ngircd/irc-mode.c
+++ src/ngircd/irc-mode.c
@@ -256,6 +256,15 @@ Client_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Ori
 							ERR_RESTRICTED_MSG,
 							Client_ID(Origin));
 			break;
+		case 'R': /* Registered (only unsettable) */
+			if (!set || Client_Type(Client) == CLIENT_SERVICE
+				 || Client_Type(Client) == CLIENT_SERVER)
+				x[0] = 'R';
+			else
+				ok = IRC_WriteStrClient(Origin,
+							ERR_NICKREGISTER_MSG,
+							Client_ID(Origin));
+			break;
 		case 'x': /* Cloak hostname */
 			if (Client_HasMode(Client, 'r'))
 				ok = IRC_WriteStrClient(Origin,
blob - 9ad6be1763d569f7af3b486e3620930f15127516
blob + 4aed70f39c783e421627f0a9b0e24bd6a587661c
--- src/ngircd/messages.h
+++ src/ngircd/messages.h
@@ -138,6 +138,7 @@
 #define ERR_CHANOPRIVSNEEDED_MSG	"482 %s %s :You are not channel operator"
 #define ERR_CANTKILLSERVER_MSG		"483 %s :You can't kill a server!"
 #define ERR_RESTRICTED_MSG		"484 %s :Your connection is restricted"
+#define ERR_NICKREGISTER_MSG		"484 %s :Cannot set user mode (+R) -- Use IRC services"
 #define ERR_NOOPERHOST_MSG		"491 %s :Not configured for your host"
 #define ERR_NOTONSAMECHANNEL_MSG	"493 %s :You must share a common channel with %s"