Module: ngircd.git Branch: master Commit: 45b1a45c979d0418591a1c62204d5a607cf86cde URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=45b1a...
Author: Alexander Barton alex@barton.de Date: Tue Jul 22 18:33:44 2008 +0200
No_Privileges(): handle forwarded messages.
---
src/ngircd/irc-oper.c | 20 ++++++++++++++++---- 1 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/ngircd/irc-oper.c b/src/ngircd/irc-oper.c index 544fe67..e7dfee6 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 */