]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/parse.c
Get rid of cvs-version.* and CVSDATE definition.
[ngircd-alex.git] / src / ngircd / parse.c
index d3065bf43c62627897056622a44e101728237f84..5cfeaaa8a9fa05ba1c5e81a5cf612c6bb77c23d1 100644 (file)
@@ -12,7 +12,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: parse.c,v 1.70 2008/01/13 16:12:49 fw Exp $";
+static char UNUSED id[] = "$Id: parse.c,v 1.72 2008/02/17 13:26:42 alex Exp $";
 
 /**
  * @file
@@ -67,6 +67,7 @@ static COMMAND My_Commands[] =
        { "DISCONNECT", IRC_DISCONNECT, CLIENT_USER, 0, 0, 0 },
        { "ERROR", IRC_ERROR, 0xFFFF, 0, 0, 0 },
        { "HELP", IRC_HELP, CLIENT_USER, 0, 0, 0 },
+       { "INFO", IRC_INFO, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
        { "INVITE", IRC_INVITE, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
        { "ISON", IRC_ISON, CLIENT_USER, 0, 0, 0 },
        { "JOIN", IRC_JOIN, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
@@ -93,11 +94,13 @@ static COMMAND My_Commands[] =
        { "SERVER", IRC_SERVER, 0xFFFF, 0, 0, 0 },
        { "SQUIT", IRC_SQUIT, CLIENT_SERVER, 0, 0, 0 },
        { "STATS", IRC_STATS, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
+       { "SUMMON", IRC_SUMMON, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
        { "TIME", IRC_TIME, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
        { "TOPIC", IRC_TOPIC, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
        { "TRACE", IRC_TRACE, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
        { "USER", IRC_USER, 0xFFFF, 0, 0, 0 },
        { "USERHOST", IRC_USERHOST, CLIENT_USER, 0, 0, 0 },
+       { "USERS", IRC_USERS, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
        { "VERSION", IRC_VERSION, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
        { "WALLOPS", IRC_WALLOPS, CLIENT_USER|CLIENT_SERVER, 0, 0, 0 },
        { "WHO", IRC_WHO, CLIENT_USER, 0, 0, 0 },
@@ -421,6 +424,7 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
         * wird die Verbindung geschlossen und false geliefert. */
        CLIENT *client;
        bool result = true;
+       int client_type;
        COMMAND *cmd;
 
        assert( Idx >= 0 );
@@ -431,8 +435,9 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
        assert( client != NULL );
 
        /* Numeric? */
-       if ((Client_Type(client) == CLIENT_SERVER ||
-            Client_Type(client) == CLIENT_UNKNOWNSERVER)
+       client_type = Client_Type(client);
+       if ((client_type == CLIENT_SERVER ||
+            client_type == CLIENT_UNKNOWNSERVER)
            && strlen(Req->command) == 3 && atoi(Req->command) > 1)
                return Handle_Numeric(client, Req);
 
@@ -444,7 +449,7 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
                        continue;
                }
 
-               if (!(Client_Type(client) & cmd->type))
+               if (!(client_type & cmd->type))
                        return IRC_WriteStrClient(client, ERR_NOTREGISTERED_MSG, Client_ID(client));
 
                /* Command is allowed for this client: call it and count produced bytes */
@@ -453,16 +458,16 @@ Handle_Request( CONN_ID Idx, REQUEST *Req )
                cmd->bytes += Conn_WCounter();
 
                /* Adjust counters */
-               if (Client_Type(client) != CLIENT_SERVER)
+               if (client_type != CLIENT_SERVER)
                        cmd->lcount++;
                else
                        cmd->rcount++;
                return result;
        }
 
-       if (Client_Type( client ) != CLIENT_USER &&
-           Client_Type( client ) != CLIENT_SERVER &&
-           Client_Type( client ) != CLIENT_SERVICE )
+       if (client_type != CLIENT_USER &&
+           client_type != CLIENT_SERVER &&
+           client_type != CLIENT_SERVICE )
                return true;
 
        /* Unknown command and registered connection: generate error: */