]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/parse.c
irc-macros.h: Update copyright, don't forget contributors!
[ngircd-alex.git] / src / ngircd / parse.c
index 5ff9fcc2ce84136bb3fec671f2c822293da0cda7..c92da4d2aa76b21d96bbc3dd9e2bd767c91b4190 100644 (file)
@@ -127,7 +127,7 @@ static COMMAND My_Commands[] =
        { "GET",  IRC_QUIT_HTTP, CLIENT_UNKNOWN, 0, 0, 0 },
        { "POST", IRC_QUIT_HTTP, CLIENT_UNKNOWN, 0, 0, 0 },
 #endif
-       { NULL, NULL, 0x0, 0, 0, 0 } /* Ende-Marke */
+       { NULL, NULL, 0x0, 0, 0, 0 } /* End-Mark */
 };
 
 static void Init_Request PARAMS(( REQUEST *Req ));
@@ -157,7 +157,7 @@ Parse_GetCommandStruct( void )
  * Parse a command ("request") received from a client.
  * 
  * This function is called after the connection layer received a valid CR+LF
- * terminated line of text: we asume that this is a valid IRC command and
+ * terminated line of text: we assume that this is a valid IRC command and
  * try to do something useful with it :-)
  *
  * All errors are reported to the client from which the command has been
@@ -169,7 +169,7 @@ Parse_GetCommandStruct( void )
  * @param Idx Index of the connection from which the command has been received.
  * @param Request NULL terminated line of text (the "command").
  * @return true on success (valid command or "regular" error), false if a
- *     fatal error occured and the connection has been shut down.
+ *     fatal error occurred and the connection has been shut down.
  */
 GLOBAL bool
 Parse_Request( CONN_ID Idx, char *Request )
@@ -271,8 +271,6 @@ Parse_Request( CONN_ID Idx, char *Request )
 static void
 Init_Request( REQUEST *Req )
 {
-       /* Neue Request-Struktur initialisieren */
-
        int i;
 
        assert( Req != NULL );
@@ -367,7 +365,7 @@ Validate_Command( UNUSED CONN_ID Idx, UNUSED REQUEST *Req, bool *Closed )
        *Closed = false;
 
        return true;
-} /* Validate_Comman */
+} /* Validate_Command */
 
 
 static bool
@@ -514,10 +512,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();