about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2008-07-22 18:33:44 +0200
committerAlexander Barton <alex@barton.de>2009-09-30 16:00:05 +0200
commit45b1a45c979d0418591a1c62204d5a607cf86cde (patch)
tree4ddd486a167797d4032851885a235d304ba36e3f /src
parent7d6de7c352f7b91b396cbdb6f2d194e2422b35b3 (diff)
downloadngircd-45b1a45c979d0418591a1c62204d5a607cf86cde.tar.gz
ngircd-45b1a45c979d0418591a1c62204d5a607cf86cde.zip
No_Privileges(): handle forwarded messages.
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/irc-oper.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/ngircd/irc-oper.c b/src/ngircd/irc-oper.c
index 544fe67d..e7dfee6c 100644
--- a/src/ngircd/irc-oper.c
+++ b/src/ngircd/irc-oper.c
@@ -73,10 +73,22 @@ Check_Oper(CLIENT * Client)
 static bool
 No_Privileges(CLIENT * Client, REQUEST * Req)
 {
-	Log(LOG_NOTICE, "No privileges: client \"%s\", command \"%s\"",
-	    Client_Mask(Client), Req->command);
-	return IRC_WriteStrClient(Client, ERR_NOPRIVILEGES_MSG,
-				  Client_ID(Client));
+	CLIENT *from = NULL;
+
+	if (Req->prefix) 
+		from = Client_Search(Req->prefix);
+
+	if (from) {
+		Log(LOG_NOTICE, "No privileges: client \"%s\" (%s), command \"%s\"",
+		    Req->prefix, Client_Mask(Client), Req->command);
+		return IRC_WriteStrClient(from, ERR_NOPRIVILEGES_MSG,
+					  Client_ID(from));
+	} else {
+		Log(LOG_NOTICE, "No privileges: client \"%s\", command \"%s\"",
+		    Client_Mask(Client), Req->command);
+		return IRC_WriteStrClient(Client, ERR_NOPRIVILEGES_MSG,
+					  Client_ID(Client));
+	}
 } /* PermissionDenied */