X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;ds=sidebyside;f=server.h;h=1652d91efc38a453768829fbb5fbdabfd275f42a;hb=63020a72f5f5c815ac69caa2d7f79b5d8928be36;hp=ba9b39e45359ef08deba2c2ead21d4acfc4616b2;hpb=f6dc51ad7914b60fe71a4fc53460925bdc513a9d;p=paraslash.git diff --git a/server.h b/server.h index ba9b39e4..1652d91e 100644 --- a/server.h +++ b/server.h @@ -19,9 +19,10 @@ /** \file server.h common server data structures */ #include "para.h" +#include "list.h" +#include - -/** size of the dbinfo and audio_file info strings of struct misc_meta_data */ +/** size of the selector_info and audio_file info strings of struct misc_meta_data */ #define MMD_INFO_SIZE 16384 /** @@ -37,12 +38,14 @@ enum {DB_READ = 1, DB_WRITE = 2, AFS_READ = 4, AFS_WRITE = 8}; /** * data needed to authenticate the user */ -struct user{ -/** the username */ - char name[MAXLINE]; -/** full path to the public RSA key */ - char pubkey_file[_POSIX_PATH_MAX]; -/** the privileges of this user */ +struct _user { + /** the position of this user in the list of users */ + struct list_head node; + /** the username */ + char *name; + /** the public RSA key */ + RSA *rsa; + /** the privileges that this user has */ unsigned int perms; }; @@ -51,17 +54,17 @@ struct user{ */ struct server_command { /** the name of the command */ - char *name; + const char *name; /** pointer to the function that handles the command */ int (*handler)(int, int, char **); /** the privileges a user must have to execute this command */ unsigned int perms; /** one-line description of the command */ - char *description; + const char *description; /** summary of the command line options */ - char *synopsis; + const char *synopsis; /** the long help text */ - char *help; + const char *help; }; /** holds the arguments for the para_server's sender command */ @@ -139,19 +142,19 @@ struct misc_meta_data{ unsigned int active_connections; /** the process id of para_server */ pid_t server_pid; -/** a string that gets filled in by the current database tool */ - char dbinfo[MMD_INFO_SIZE]; -/** the number if the current database tool */ - int dbt_num; -/** commands set this to non-zero to request a database tool change */ - int dbt_change; +/** a string that gets filled in by the current audio file selector */ + char selector_info[MMD_INFO_SIZE]; +/** the number if the current audio file selector */ + int selector_num; +/** commands set this to non-zero to change the current selector */ + int selector_change; /** used by the sender command */ struct sender_command_data sender_cmd_data; -/** each dbtool has its private data pointer */ - void *private_dbtool_data[NUM_DBTOOLS]; }; +extern struct server_args_info conf; int handle_connect(int fd, struct sockaddr_in *addr); +int _get_user(struct _user *user); void mmd_unlock(void); void mmd_lock(void);