preparations for user list in memory
[paraslash.git] / server.h
index 9d18561e0f8e1eb20300759cc597970795abe887..0077338bf47e1162ff121c51337705eca607c4f7 100644 (file)
--- a/server.h
+++ b/server.h
@@ -19,7 +19,8 @@
 /** \file server.h common server data structures */
 
 #include "para.h"
-
+#include "list.h"
+#include <openssl/pem.h>
 
 /** 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);