суббота, 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
(кто найдет лучше и на русском в картинках кидайте ссылки - дополню тему)
Общая рекомендация - все фаерволы имеют режим обучения при старте приложения он спрашивает разрешение для добавления приложения в доверенные - сделайте это и программный фаер не будет мешать.


воскресенье, 12 января 2014 г.

zyxel keenetic и miniupnpd

Всем привет.
У кого роутер zyxel keenetic и FlylinkDC++,
можете посмотреть в его логах сообщения вида
miniupnpd invalid values xml in NDM respons
Есть жалоба от пользователя, что с FlylinkDC++ r503-beta20-build16359 это началось.
хоть я эту часть вообще не трогал в клиенте... баг подозрительный.
хотелось-бы разобраться в его причинах.
Еще особенность - прошивка на zyxel. выставлена тоже "бета"



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

Вирусные хранилища в сети DC++

Всем привет.
Обращаюсь к тем, кто качает различный софт из DC++
к сожалению в сети на некоторых хабах сидят пользователи(вероятно всего это боты) и раздают вирусы в виде
exe-шников переименованные под популярные программы/кряки.
Если вы скачали подобный исполняемый файл, то перед запуском обязательно проверьте его через https://www.virustotal.com
т.к. многие антивирусы могут реагировать с задержкой.

Я нашел одного такого пользователя и провел тест на файле
MAC OS X Snow Leopard v.10.6.7 Hackintosh Atkos s3v2.exe
TTH - 22HIIKYTW3YM7IH35MZK4YIIYGAZOYHNOMACH5A

Пока скачал и отправил на virustotal юзер уже пропал (возможно он пропадает сразу после того как с него что-то скачают :)
Проверка дала вот такой результат только 8 из 47 нашли в файле заразу. 
также обратите внимание что популярный халявный avast промолчал.
Следующий шаг - сделал поиск уже по имени файла т.к. мой первый TTH пропал из сети
скачал другую версию этого файла. на этот раз она оказалась более старой и 
ее детектировало большее кол-во антивирусов (35 из 47)


Пока не придумал как защититься от подобного в клиенте...
при открытии файл-листов можно легко детектировать рассадник, но ведь пользователи качают подобное сразу из окна поиска
без загрузки файл-листов... в общем пока думаю.
Если у вас есть идеи как флайлинк может помочь не качать вирусы неподготовленным пользователям
можете отписать соображения в данную тему, или мне на почту. pavel.pimenov@gmail.com

Замеченные особенности подобных вирусных хранилищ
 1. Если отрыть файл лист пользователя, то у него в шаре каталог и много (10-30 тыс)  exe файлов 
     с разными именами почти одинакового размера 0.5Мб-1Мб
     у некоторых файлов одинаковый TTH









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
















3. Если поискать по имени файла, то TTH и размеры файлов у разных пользователей отличаются.