]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - server.c
move LOAD_PUBLIC_KEY and LOAD_PRIVATE_KEY to crypt.h
[paraslash.git] / server.c
index 2b5971474c1b0f6ec7e55e775ed290680ce36f0d..7d7953215b7a8a0c7a52bc1c0c39d3eb432d54ef 100644 (file)
--- a/server.c
+++ b/server.c
@@ -58,8 +58,8 @@ struct misc_meta_data *mmd;
  * senders.
 */
 struct server_args_info conf;
-char *user_list = NULL;
-struct list_head _user_list;
+char *user_list_file = NULL;
+struct list_head user_list;
 extern void dccp_send_init(struct sender *);
 extern void http_send_init(struct sender *);
 extern void ortp_send_init(struct sender *);
@@ -223,11 +223,11 @@ static void parse_config(int override)
                cf = conf.config_file_arg;
        else
                cf = make_message("%s/.paraslash/server.conf", home);
-       free(user_list);
+       free(user_list_file);
        if (!conf.user_list_given)
-               user_list = make_message("%s/.paraslash/server.users", home);
+               user_list_file = make_message("%s/.paraslash/server.users", home);
        else
-               user_list = para_strdup(conf.user_list_arg);
+               user_list_file = para_strdup(conf.user_list_arg);
        ret = stat(cf, &statbuf);
        if (ret && conf.config_file_given) {
                ret = -1;
@@ -253,8 +253,8 @@ out:
        free(home);
        if (ret > 0)
                return;
-       free(user_list);
-       user_list = NULL;
+       free(user_list_file);
+       user_list_file = NULL;
        exit(EXIT_FAILURE);
 }
 
@@ -277,7 +277,7 @@ static void setup_signal_handling(void)
 }
 
 /*
- * lookup user in user_list file. Fills in a user struct containing
+ * lookup user in user list file. Fills in a user struct containing
  * filename of the user's public key as well as the permissions of that user.
  * Returns 1 on success, 0 if user does not exist and < 0 on errors.
  */
@@ -289,12 +289,12 @@ static void populate_user_list(void) {
        char w[MAXLINE], n[MAXLINE], k[MAXLINE], p[MAXLINE], tmp[4][MAXLINE];
        int num, ret;
 
-       file_ptr = fopen(user_list, "r");
+       file_ptr = fopen(user_list_file, "r");
        ret = -E_USERLIST;
        if (!file_ptr)
                goto out;
        for (;;) {
-               struct _user *u;
+               struct user *u;
                ret = para_fgets(line, MAXLINE, file_ptr);
                if (ret < 0)
                        PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret));
@@ -305,10 +305,10 @@ static void populate_user_list(void) {
                if (strcmp(w, "user"))
                        continue;
                PARA_DEBUG_LOG("found entry for %s\n", n);
-               u = para_malloc(sizeof(struct _user));
+               u = para_malloc(sizeof(struct user));
                u->name = para_strdup(n);
                u->rsa = para_malloc(sizeof(RSA));
-               ret = get_rsa_key(k, &u->rsa, 0 /* public */);
+               ret = get_rsa_key(k, &u->rsa, LOAD_PUBLIC_KEY);
                if (ret < 0)
                        break;
                u->perms = 0;
@@ -331,7 +331,7 @@ static void populate_user_list(void) {
                                PARA_WARNING_LOG("unknown permission: %s\n",
                                        tmp[num]);
                }
-               para_list_add(&u->node, &_user_list);
+               para_list_add(&u->node, &user_list);
        }
 out:
        if (file_ptr)
@@ -344,32 +344,40 @@ out:
 
 static void init_user_list(void)
 {
-       struct _user *u, *tmp;
+       struct user *u, *tmp;
        static int initialized;
 
        if (initialized) {
-               list_for_each_entry_safe(u, tmp, &_user_list, node) {
+               list_for_each_entry_safe(u, tmp, &user_list, node) {
                        list_del(&u->node);
                        free(u->name);
                        free(u->rsa);
                        free(u);
                }
        } else
-               INIT_LIST_HEAD(&_user_list);
+               INIT_LIST_HEAD(&user_list);
        initialized = 1;
        populate_user_list();
 }
 
-int _get_user(struct _user *user)
+/**
+ * lookup user in user_list.
+ *
+ * \param user: must initially contain the name of the user and is filled
+ * in by this function on success.
+ *
+ * \return 1 on success and < 0 on errors.
+ */
+int get_user(struct user *user)
 {
-       struct _user *u;
-       list_for_each_entry(u, &_user_list, node) {
+       struct user *u;
+       list_for_each_entry(u, &user_list, node) {
                if (strcmp(u->name, user->name))
                        continue;
                *user = *u;
                return 1;
        }
-       return 0;
+       return -E_BAD_USER;
 }
 
 static void init_selector(void)