X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=command.h;h=05510cc08aa33d50a104f71a05d353ad3027e7d2;hp=347dd81ceedc753eb7f89a204ae5372ddb079dc7;hb=b55f405f8005821ffa369b929bc0b419da62683d;hpb=9417eae5ca2b9f10d25f769221e8fd91048bc68a diff --git a/command.h b/command.h index 347dd81c..05510cc0 100644 --- a/command.h +++ b/command.h @@ -1,5 +1,21 @@ /** \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. */ @@ -7,7 +23,7 @@ struct server_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. */