* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id$
+ */
+/** @file
+ * @brief Command and token declarations and structures.
+ * @version $Id$
*/
#ifndef INCLUDED_msg_h
#define INCLUDED_msg_h
#define TOK_GET "GET"
#define MSG_PRIVS "PRIVS" /* PRIV */
-#define TOK_PRIVS "PRIVS"
+#define TOK_PRIVS "PR"
+#define CMD_PRIVS MSG_PRIVS, TOK_PRIVS
+
+#define MSG_CAP "CAP"
+#define TOK_CAP "CAP"
+#define CMD_CAP MSG_CAP, TOK_CAP
/*
* Constants
*/
-#define MFLG_SLOW 0x01 /* Command can be executed roughly *
- * once per 2 seconds. */
-#define MFLG_UNREG 0x02 /* Command available to unregistered *
- * clients. */
-#define MFLG_IGNORE 0x04 /* silently ignore command from
- * unregistered clients */
+#define MFLG_SLOW 0x01 /** Limit command usage to
+ * once per 2 seconds (for
+ * local users). */
+#define MFLG_UNREG 0x02 /** Command available to
+ * unregistered clients. */
+#define MFLG_IGNORE 0x04 /** Silently ignore command from
+ * unregistered clients. */
+#define MFLG_EXTRA 0x08 /** Handler requests that
+ * mptr->extra be passed in
+ * parv[1]. */
/*
* Structures
*/
+
+/** Information on how to parse a message. */
struct Message {
- char *cmd; /* command string */
- char *tok; /* token (shorter command string) */
- unsigned int count; /* number of times message used */
- unsigned int parameters;
- unsigned int flags; /* bit 0 set means that this command is allowed
- to be used only on the average of once per 2
- seconds -SRB */
- unsigned int bytes; /* bytes received for this message */
+ char *cmd; /**< command string */
+ char *tok; /**< token (shorter command string) */
+ unsigned int count; /**< number of times message used */
+ unsigned int parameters; /**< minimum number of parameters */
+ unsigned int flags; /**< MFLG_* flags for command */
+ unsigned int bytes; /**< bytes received for this message */
+ void *extra; /**< extra pointer to be passed in parv[1] */
/*
* cptr = Connected client ptr
* sptr = Source client ptr