Ejemplo n.º 1
0
int
hgd_acmd_user_list_print(char **args)
{
	struct hgd_user_list	*list;
	int			 i, ret = HGD_FAIL;
	char			*permstr = NULL;

	if (db == NULL)
		db = hgd_open_db(db_path, 0);

	if (db == NULL)
		goto clean;

	if (hgd_user_list(&list) != HGD_OK)
		goto clean;

	for (i = 0; i < list->n_users; i++) {
		hgd_gen_perms_str(list->users[i]->perms, &permstr);
		printf("%-20s %s\n",
		    list->users[i]->name, permstr);
		free(permstr);
	}

	ret = HGD_OK;
clean:
	if (list != NULL) {
		hgd_free_user_list(list);
		free(list);
	}

	return (ret);
}
Ejemplo n.º 2
0
int
hgd_cmd_user_list(struct hgd_session *sess, char **args)
{
	struct hgd_user_list	*list;
	int			 i;
	char			*msg;

	(void) sess;

	list = hgd_acmd_user_list(args);

	if (list == NULL) {
		DPRINTF(HGD_D_WARN, "List retuned NULL,"
		    " there are either no users or"
		    " an error occoured");
		hgd_sock_send_line(sess->sock_fd, sess->ssl,
			"err|list_null");

		goto clean;
	}
	xasprintf(&msg, "ok|%d", list->n_users);
	hgd_sock_send_line(sess->sock_fd, sess->ssl, msg);
	free(msg);

	for (i = 0; i < list->n_users; i++) {
		hgd_sock_send_line(
		    sess->sock_fd, sess->ssl, list->users[i]->name);
	}

clean:
	if (list != NULL) {
		hgd_free_user_list(list);
		free(list);
	}

	return (HGD_OK);
}