repo: ngircd action: commit revision: path_from: revision_from: 45b1a45c979d0418591a1c62204d5a607cf86cde: path_to: revision_to:
commit 45b1a45c979d0418591a1c62204d5a607cf86cde Author: Alexander BartonDate: Tue Jul 22 18:33:44 2008 +0200 No_Privileges(): handle forwarded messages. diff --git a/src/ngircd/irc-oper.c b/src/ngircd/irc-oper.c
--- 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 */
-----END OF PAGE-----