* 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 *);
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;
free(home);
if (ret > 0)
return;
- free(user_list);
- user_list = NULL;
+ free(user_list_file);
+ user_list_file = NULL;
exit(EXIT_FAILURE);
}
}
/*
- * 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.
*/
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));
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;
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)
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)