repo: ngircd action: commit revision: path_from: revision_from: 508ca3044dd6d1a88686efceda92a7f2a9b4a926: path_to: revision_to:
commit 508ca3044dd6d1a88686efceda92a7f2a9b4a926 Author: Alexander BartonDate: Tue Jan 22 10:54:06 2013 +0100 Return better "Connection not registered as server link" errors Now ngIRCd returns a more specific error message for numeric ERR_NOTREGISTERED(451) when a regular user tries to use a command that isn't allowed for users but for servers: ERR_NOTREGISTEREDSERVER(451). diff --git a/src/ngircd/parse.c b/src/ngircd/parse.c
--- a/src/ngircd/parse.c
+++ b/src/ngircd/parse.c
@@ -514,10 +514,20 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
continue;
}
- if (!(client_type & cmd->type))
- return IRC_WriteStrClient(client, ERR_NOTREGISTERED_MSG, Client_ID(client));
+ if (!(client_type & cmd->type)) {
+ if (client_type == CLIENT_USER
+ && cmd->type & CLIENT_SERVER)
+ return IRC_WriteStrClient(client,
+ ERR_NOTREGISTEREDSERVER_MSG,
+ Client_ID(client));
+ else
+ return IRC_WriteStrClient(client,
+ ERR_NOTREGISTERED_MSG,
+ Client_ID(client));
+ }
- /* Command is allowed for this client: call it and count produced bytes */
+ /* Command is allowed for this client: call it and count
+ * generated bytes in output */
Conn_ResetWCounter();
result = (cmd->function)(client, Req);
cmd->bytes += Conn_WCounter();
-----END OF PAGE-----