пятница, 14 февраля 2014 г.

FlylinkDC++ r502-sp13 build 16604


Всем привет!
Долгое время тестировали бетку 503 - исправлено много ошибок.
Все фиксы влиты в ветку r502 - прошу протестировать (версия доступна в автообновлении на релизном канале).
если в результате обновления заметите проблему просьба
писать мне на почту pavel.pimenov@gmail.com
* Детектор DDoS атак и блокировка от дублирующих TTH-запросов
Огромная благодарность HackFresse за формализацию алгоритма блокировки атак
а также за локализацию проблем флая при работе sqlite!
http://dchublist.ru/forum/viewtopic.php?f=6&t=1028&start=250
* Встроенное тестирование проброса портов
* Агрегатор проблем если у вас не работает поиск
Обновления библиотек:
* openSSL 1.0.1f
* sqlite 3.8.1
* miniupnp 1.9
* WTL 9.0
http://www.fly-server.ru/install/r5xx/release/SetupFlylinkDC-x64-r502-release.exe
http://www.fly-server.ru/install/r5xx/release/SetupFlylinkDC-x86-r502-release.exe
http://www.fly-server.ru/install/r5xx/release/SetupFlylinkDC-x86-x64-r502-release.exe
Исходники всех выпусков
http://www.fly-server.ru/install/r5xx/src-bin

 

понедельник, 10 февраля 2014 г.

Счетчик сообщений + детект DDoS

Всем привет!
Предлагаю протестировать очередную бетку r503-beta28 (доступна в атообновлении на канале beta)


Видимые для пользователей изменения 
1.  Добавлена колонка "Сообщений" в ней подсчитывается ко-во публичных сообщений 
   от пользователя внутри хаба, по ней можно определить самых разговорчивых :)
  также IP адрес отображается маленьким, если он был загружен из локальной базы данных 
  а не точно определен в результате соединения с пользователем.


 










Данная информация хранится локально в таблице user_info (файл FlylinkDC_user.sqlite)










2. Детект и блокировка DDoS атак с помощью DC++ клиента. 
подробнее проблема описывается и обсуждается в этой теме
можете поучавствовать в обсуждении чтобы помочь выбрать оптимальный алгоритм блокировки 
данной уязвимости, которую используют админы некоторых хабов для развлечения.























http://www.fly-server.ru/install/r5xx/beta/SetupFlylinkDC-x64-r5xx-beta.exe 
http://www.fly-server.ru/install/r5xx/beta/SetupFlylinkDC-x86-r5xx-beta.exe
http://www.fly-server.ru/install/r5xx/beta/SetupFlylinkDC-x86-x64-r5xx-beta.exe
 
Исходный код для программистов С++
http://www.fly-server.ru/install/r5xx/src-bin/ 

 

суббота, 25 января 2014 г.

FlylinkDC++ & Mongoose

Привет.
Вся функциональность серверной части флайлинка реализована на базе  Mongoose
благодаря мангусту вы получаете информацию о качестве видео-файлов











Тест на хабре данного сервера http://habrahabr.ru/post/207460/
показал его отличную производительность - рекомендую!
Нагрузка на мой VPS сейчас выглядит так:
http://82.196.7.135/munin/localdomain/localhost.localdomain/index.html
За все время работы флай-сервера обработано 56 миллионов запросов
нагрузка 10-20 запросов в секунду:








Проблема разрушения базы sqlite

Привет!
Мне периодически присылают письма об ошибке открытия базы
как правило пользователи сообщают о том, что перед этим возникает или отключение питания, или синий экран падения винды
по собранной статистики таких случаев не так много  211 разрушений базы из 133 тыс флаев но они есть.
















я пока не знаю как лучше автоматически полечить эту проблему кроме как удаления базы данных и  ее повторное создание
тут есть побочный эффект - дополнительный рехэш шары т потеря статистики.

В Google Chrome есть код на детект убитой базы sqlite
chromiumtrunk\src\chrome\browser\diagnostics\sqlite_diagnostics.cc
но детально как они восстанавливают базу я не изучил....

у кого есть какие мысли?
p.s.
пример ошибки присылаемой пользователями:

четверг, 23 января 2014 г.

Тест корректного проброса портов

Привет.
С бетки 23 во флайлинк встроена функция тестирования доступности указанных в конфигурации портов со стороны внешнего сервера.
зеленые иконки, будут говорить о корректной настройки сетевой части.






 






раньше этой функцией занимался скрипт http://flylinkdc.com/test.php
но у него был недостаток - он не поддерживал тест UDP порта, т.к. со стороны сервер нельзя узнать
долетел пакет до клиента или нет.
В текущей реализации это исправлено.
Алгоритм работы такой
1. Клиент шлет на сервер json с указанием портов, какие нужно проверить
{
 "CID":"S7IVMBQPT23U3WN2AONV2UTAPL3NGA6GARBXXXA",
 "tcp": [  {  "port":15234 } ], "udp": [  {  "port":16237  },  {   "port":22094  } ]
}
2. Сервер получает запрос и запускает нитку выполняющую обратную передачу специального пакета на указанные порты  

посылка имеет формат $FLY-TEST-PORT S7IVMBQPT23U3WN2AONV2UTAPL3NGA6GARBXXXA91.192.99.251:15234|
3. Слушающие сокеты на стороне флая обрабатывают такую посылку, сравнивают CID и зажигают лампочки зеленым цветом.
Пока сильно не распространилось - критикуйте реализацию, может что-то криво или не учел чего...а может что-то добавить
бонусом этого запроса является получения вашего внешнего WAN IP
соответственно обращенеи к http://checkip.dyndns.com не требуется.

Следующим шагом  для помощи проблем в районе сети будет детект открытости приложения в фаерволе винды а также его автоматическое добавление.
подобное уже реализовано в мастере первичной настройке.
но я нашел немного другую реализацию в гугл-хроме 
chromium\home\src_tarball\tarball\chromium\src\third_party\libjingle\source\talk\base\winfirewall.*
попробую ее.

четверг, 16 января 2014 г.

FlylinkDC++ и проблема: не работает поиск!

Всем привет.

Решил уделить внимание топовому вопросу на всех хабах
"программа ничего не находит!"
Данную тему буду обновлять по мере поступления вопросов и разбора каждой конкретной ситуации.

Для упрощения сбора проблем реализовано:
1. В интерфейсе поиска добавлена функция тестирования UDP используемого для поиска в активном режиме.
2. Добавлена вторая маленькая кнопочка поиска
   позволяющая выполнить запрос в пассивном режиме через хаб - должна помочь найти, если    пользователь еще не научился включать upnp и не разобрался, как открывать порты руками.
3. Добавлен линк на данную страницу, чтобы пользователь у кого не работает поиск зашел сюда и прочитал инструкции или отписал свою уникальную ситуацию.

Причина 1  - Программный фаервол.
Временно отключаем его - если помогает, значит виноват он и ищем
   в инете способ добавления программы в исключения применительно к своей программе.
   ссылки на описания основных фаерволов

http://www.dslreports.com/faq/dc/3.1_Software_Firewalls
http://dcplusplus.sourceforge.net/webhelp/faq_unblock.html
(кто найдет лучше и на русском в картинках кидайте ссылки - дополню тему)
Общая рекомендация - все фаерволы имеют режим обучения при старте приложения он спрашивает разрешение для добавления приложения в доверенные - сделайте это и программный фаер не будет мешать.