1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
+ Написать отдельную функцию, которая добавляет сообщение в исходящий буфер для заданного клиента/узла
+ Расширение сервера до распределенного взаимодействия. Открыть еще один порт для входящих соед. от других узлов. Разработать структуру, опис. соединение с др. узлами. Написать функцию, загружающую список адресов узлов,выполняющую подключение к узлам и обновляющую список. Написать функцию работы с соединениями с другими узлами.
- Регрессионные тесты
- Список узлов. Разработать структуру элемента списка, функции для работы со списком, которые будут применяться клиентом и узлом.
- Реализовать поддержку туннелей, как в SSH
- Возле каждой функции в коде сделать ее описание. Делать описание для будущих функций
- Сделать обработку ошибок
-(+--) Упорядочить названия идентификаторов
- Добавить поддержку IPv6
-(+--) Реализовать обработку тайм-аутов
- Счетчики трафика входящего и исходящего, активных пользователей
- Привести в соответствие требованиям GNU coding standards( к приемлемым требованиям)
- Адресные пространства
+ Удалить понятие "название сети" из протокола и кода.Инкрементировать версию протокола
+ Добавить в клиентскую библиотеку еще одну callback-функцию, сообщающую о неуспешной попытке создания канала./Разобраться с неконсистентностью освобождения ресурсов в (close_channel,close_connection,establish_data_connection)/
- Соединения между узлами шифруются при помощи ADH (не нужно?)
+ Все входящие соединения узла через один TCP порт, а не 3
- Очередь задач (соединиться с узлом и т.д)
- Балансировка нагрузки между узлами (Узлы обмениваются количеством подключенных юзеров, потом самые нагруженные узлы посылают клиентам команду "сменить узел" с отсортированным списком N наименее нагруженных узлов)
- автоматическая регистрация аккаунтов
- сайт, багтрекер, VCS, форум, почтовая рассылка
+ сохранение открытых ключей контактов и их сопоставление при каждом сеансе
- список контактов, кому разрешено видеть, когда абонент в сети
+ хранение списка узлов pica-node в базе sqlite
- autotools
- хранение недоставленных сообщений на стороне клиента, в базе sqlite, пока абонент не появится в сети
- история сообщений, с опциональным шифрованием
- проверка сертификата клиента узлом (узел должен иметь копию корневого сертификата)
- переводы интерфейса
- документация пользователя
- текст лицензий (OpenSSL, iniparser, pica pica, Qt) в окошке about и файлах LICENSE
- собрать и протестировать под Windows (32 и 64 бита)
- аудио-видео звонки (ffmpeg)
- передача файлов
- возможность прямого P2P соединения между клиентами, клиент может выбирать предпочитаемый вариант (запретить P2P / использовать по возможности)
- периодическая смена CA ключей и уничтожение старого приватного ключа, публикация списков выданных сертификатов для каждого ключа (???)
- конфигурация узла (конфиг файл, опции командной строки, дефолтные значения)
- пакеты для разных дистрибутивов (ebuild, deb, rpm)
|