diff options
| author | Alexander Barton <alex@barton.de> | 2008-07-22 18:33:44 +0200 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2009-09-30 16:00:05 +0200 |
| commit | 45b1a45c979d0418591a1c62204d5a607cf86cde (patch) | |
| tree | 4ddd486a167797d4032851885a235d304ba36e3f | |
| parent | 7d6de7c352f7b91b396cbdb6f2d194e2422b35b3 (diff) | |
| download | ngircd-45b1a45c979d0418591a1c62204d5a607cf86cde.tar.gz ngircd-45b1a45c979d0418591a1c62204d5a607cf86cde.zip | |
No_Privileges(): handle forwarded messages.
| -rw-r--r-- | 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 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 */ |