X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=server.h;h=0077338bf47e1162ff121c51337705eca607c4f7;hp=9d18561e0f8e1eb20300759cc597970795abe887;hb=f269333700038603703ec79c909d514bee731faf;hpb=786010c598f79d20280e6ea9ea458cad4a7e9af7 diff --git a/server.h b/server.h index 9d18561e..0077338b 100644 --- a/server.h +++ b/server.h @@ -19,7 +19,8 @@ /** \file server.h common server data structures */ #include "para.h" - +#include "list.h" +#include /** size of the selector_info and audio_file info strings of struct misc_meta_data */ #define MMD_INFO_SIZE 16384 @@ -38,11 +39,22 @@ enum {DB_READ = 1, DB_WRITE = 2, AFS_READ = 4, AFS_WRITE = 8}; * data needed to authenticate the user */ struct user{ -/** the username */ + /** the username */ char name[MAXLINE]; -/** full path to the public RSA key */ + /** full path to the public RSA key */ char pubkey_file[_POSIX_PATH_MAX]; -/** the privileges of this user */ + /** the privileges of this user */ + unsigned int perms; +}; + +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; }; @@ -152,5 +164,6 @@ struct misc_meta_data{ 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);