gui: Make some functions return void.
[paraslash.git] / command.h
index 347dd81ceedc753eb7f89a204ae5372ddb079dc7..05510cc08aa33d50a104f71a05d353ad3027e7d2 100644 (file)
--- a/command.h
+++ b/command.h
@@ -1,5 +1,21 @@
 /** \file command.h The structure of server and afs commands. */
 
 /** \file command.h The structure of server and afs commands. */
 
+/** Per connection data available to command handlers. */
+struct command_context {
+       /** Network address of the peer. */
+       const char *peer;
+       /** The paraslash user that executes this command. */
+       struct user *u;
+       /** Argument count. */
+       int argc;
+       /** Argument vector. */
+       char **argv;
+       /** The command being executed. */
+       struct server_command *cmd;
+       /** File descriptor and crypto keys. */
+       struct stream_cipher_context scc;
+};
+
 /**
  * Defines one command of para_server.
  */
 /**
  * Defines one command of para_server.
  */
@@ -7,7 +23,7 @@ struct server_command {
        /** The name of the command. */
        const char *name;
        /** Pointer to the function that handles the command. */
        /** The name of the command. */
        const char *name;
        /** Pointer to the function that handles the command. */
-       int (*handler)(struct rc4_context *, int, char * const * const);
+       int (*handler)(struct command_context *);
        /** The privileges a user must have to execute this command. */
        unsigned int perms;
        /** One-line description of the command. */
        /** The privileges a user must have to execute this command. */
        unsigned int perms;
        /** One-line description of the command. */