]> arthur.barton.de Git - ngircd-alex.git/commitdiff
Return better "Connection not registered as server link" errors
authorAlexander Barton <alex@barton.de>
Tue, 22 Jan 2013 09:54:06 +0000 (10:54 +0100)
committerAlexander Barton <alex@barton.de>
Tue, 22 Jan 2013 09:54:06 +0000 (10:54 +0100)
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).

src/ngircd/parse.c

index 5ff9fcc2ce84136bb3fec671f2c822293da0cda7..46164ce1515cb073ada9ffe92e75ade8d5cf207c 100644 (file)
@@ -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();