Архив форума Ace Stream

Базовые продукты ACE Stream ( Torrent Stream ) => Вопросы, предложения и пожелания => Тема начата: tick от 15 Февраля 2013, 02:48:10

Название: Ace Stream и uPnP
Отправлено: tick от 15 Февраля 2013, 02:48:10
Добавьте пожалуйста в настройки выключение uPnP
Название: Re: uPnP
Отправлено: tick от 03 Марта 2013, 13:46:12
Хотелось бы увидеть это дополнение как можно скорее, т.к. на некоторых компьютерах наблюдается проблема с программами использующих uPnP в том числе и с ts player.
Название: замучивание upnp
Отправлено: bolvan от 18 Декабря 2016, 10:15:43
Если много раз перезапускать engine, то вот что получается с miniupnpd.
Может лучше сперва проверять существует ли уже редирект, прежде чем запрашивать новый ?

TCP:8621:192.168.4.2:8621:0:AceStream port 8621 -> 8621
TCP:8622:192.168.4.2:8621:0:AceStream port 8621 -> 8622
TCP:8623:192.168.4.2:8621:0:AceStream port 8621 -> 8623
TCP:8624:192.168.4.2:8621:0:AceStream port 8621 -> 8624
TCP:8625:192.168.4.2:8621:0:AceStream port 8621 -> 8625
TCP:8626:192.168.4.2:8621:0:AceStream port 8621 -> 8626
TCP:8627:192.168.4.2:8621:0:AceStream port 8621 -> 8627
TCP:8628:192.168.4.2:8621:0:AceStream port 8621 -> 8628
TCP:8629:192.168.4.2:8621:0:AceStream port 8621 -> 8629
TCP:8630:192.168.4.2:8621:0:AceStream port 8621 -> 8630
Название: Re: замучивание upnp
Отправлено: Benny от 18 Декабря 2016, 13:07:05
Если много раз перезапускать engine, то вот что получается с miniupnpd.
"Перезапускать" корректно, или же после падения/насильственного убиения процесса? В первом случае движок всегда отписывается UPNP серверу - "я закончил, редирект можно убрать", т.е подобного быть не должно.

Во втором случае не все так просто, и конктретно для miniupnpd есть смысл посмотреть на его параметры "clean_ruleset_threshold" и "clean_ruleset_interval".
 
Название: Re: замучивание upnp
Отправлено: bolvan от 18 Декабря 2016, 15:02:50
Да, ваша правда. В ходе экспериментов много раз убивал его киллом.
Но может все-таки сохранять информацию,необходимую для управления лизом в файл ?
Название: upnp и ACE Stream для Android
Отправлено: !Joy! от 30 Января 2018, 21:06:03
Столкнулся с такой проблемой, в версии для андройд 3.1.24.2 не срабатывает upnp, на роутере TPlink 1043 upnp включен, другие программы(Flud, Elementum для kodi), его активно юзают, а acestream постоянно выбрасывает в лог
Spoiler: показать
2018-01-30 20:28:38,708|Thread-18|acestream.upnp|forward: found 1 devices
2018-01-30 20:28:38,707|Thread-28|acestream.coreapp|get_default_destdir: get from config: /storage/48471B4248519A7F/Android/data/org.acestream.media/files/.acestream_cache
2018-01-30 20:28:38,710|Timer-Thread-27|acestream.BGInstanceConnection|write: not ready: data=SHUTDOWN

2018-01-30 20:28:38,711|Thread-18|acestream.upnp|forward: failed to get external ip
2018-01-30 20:28:38,716|Timer-Thread-24|acestream|ga::send_request: success: http://www.google-analytics.com/__utm.gif?utme=5%28client%2Astartup%2A3.1.24%29&utmac=UA-24039434-6&utmwv=4.3&utmn=2105203904&utmcc=__utma%3D397569292.355870639.1517336918.1517336918.1517336918.1%3B&utmt=event
2018-01-30 20:28:38,719|Thread-28|acestream.coreapp|set_playerconfig: key=download_dir value=/storage/48471B4248519A7F/Android/data/org.acestream.media/files/.acestream_cache old=/storage/48471B4248519A7F/Android/data/org.acestream.media/files/.acestream_cache
2018-01-30 20:28:38,720|Timer-Thread-27|acestream.BGInstanceConnection|send NOTREADY
2018-01-30 20:28:38,727|Timer-Thread-27|acestream.BGInstanceConnection|close
2018-01-30 20:28:38,728|Timer-Thread-27|acestream.coreapp|connection_lost: ip=127.0.0.1 port=57846
2018-01-30 20:28:38,730|Timer-Thread-27|acestream.coreapp|bg::connection_lost: socket key error
2018-01-30 20:28:38,725|Thread-28|acestream.coreapp|get_default_destdir: return: return_user_path=True dest_dir=/storage/48471B4248519A7F/Android/data/org.acestream.media/files/.acestream_cache retval=/storage/48471B4248519A7F/Android/data/org.acestream.media/files
2018-01-30 20:28:38,734|Thread-28|acestream.httpserver|acquire_inputstream: got response from mapper: streaminfo={'mimetype': 'application/json; charset=utf-8', 'length': 730, 'stream': <cStringIO.StringI object at 0xf4651350>, 'statuscode': 200} mapper=<ACEStream.WebUI.WebUI.WebIFPathMapper instance at 0xf1a523c8>
2018-01-30 20:28:38,735|Thread-18|acestream.upnp|forward: selectigd() returned http://192.168.1.1:1900/ipc
2018-01-30 20:28:38,737|Thread-28|acestream.httpserver|get: not range request: close_stream=True
2018-01-30 20:28:38,743|Thread-28|acestream.httpserver|get: write done: bytes=730 time=0.000229835510254 total=730
2018-01-30 20:28:38,753|Thread-28|acestream.httpserver|get: request finished: time=0.0573320388794 bytes_sent=730
2018-01-30 20:28:38,754|Thread-18|acestream.upnp|Unable to create Port Forward. Error:Action Failed

Я понимаю, что можно пробросить порт в ручную, но хотелось бы автоматики.
Есть решение этой проблеме? Роутер менять не буду! :)
Название: Re: upnp и ACE Stream для Android
Отправлено: Benny от 31 Января 2018, 17:01:08
в версии для андройд 3.1.24.2 не срабатывает upnp, на роутере TPlink 1043 upnp включен
Спасибо за информацию.
На роутере прошивка заводская или альтернативная (dd-wrt и подобные)? И насколько она свежая в обоих случаях (версия)?

Есть предположение, что движок "не дружит" с последними версиями miniupnpd, но для однозначного ответа нужны дополнительные тесты.
Название: Re: upnp и ACE Stream для Android
Отправлено: !Joy! от 31 Января 2018, 18:24:34
Прошивка на роутере почти родная (из русифицированных) 3.13.11 Build 121102 Rel.51321n, свежей её не назовешь, но вроде обновлений на эту модель уже часто не выускают. В свое время было протестировано много прошивок и эта оказалась наиболее стабильная и безглючная на моём девайсе. Тут дело в том, что сам роутер не вызывает нареканий при работе с upnp с другими приложениями, вот сейчас три машины в локалке получили свои пробросы для utorrent, как выше писал Flud и Elementum с приставки на которой AceStream тоже получают пробросы нормально.
Правда Elementum (anacrolix/torrent) создает много открытых портов, но у них как я понял эта функция только запустилась и находится в бете.
Из тестов которые я еще проводил, это запускал на стационарнике подсоедененом к тому же роутеру, снифер wareshark, и в нем виден широковещательный запрос от acestream на поиск upnp, но ответ как вы понимаете я в этом случае не вижу, т.к. он уже адресуется от роутера на андройд приставку и на этом интерфейсе не слышен. Ещё обратил внимание, что другие программы шлют несколько подобных широковещательных запросов, а acestream только один, читал гдето, что некоторые роутеры не отправляют ответ при первом запросе, но отправка нескольких запросов даёт им пинка, может это мой вариант, но повторюсь, что с другим софтом, я с этой проблемой не встречался.
В общем, если что-то нужно потестировать, без глобальных перепрошивок, то я готов помочь.
Название: Re: upnp и ACE Stream для Android
Отправлено: Benny от 31 Января 2018, 18:30:19
Прошивка на роутере почти родная (из русифицированных) 3.13.11 Build 121102 Rel.51321n, свежей её не назовешь
Тогда действительно странно - со старыми прошивками проблем быть не должно.
В сети только одно устройство с Ace Stream? Т.е нет такого, что с двух разных локальных IP адресов пытаются сделать проброс на один и тот же порт?
Название: Re: upnp и ACE Stream для Android
Отправлено: !Joy! от 31 Января 2018, 19:30:31
Цитировать
В сети только одно устройство с Ace Stream?
Да одно. И в админке роутера не чего не светится в upnp пробросах по этому 8621 порту.

Судя по этой строке
acestream.upnp|forward: selectigd() returned http://192.168.1.1:1900/ipc
на сколько я понимаю, движок не получает xml от роутера...
А можно как то увидеть в логах более подробно обмен пакетами, или это только нужно что то ставить на приставку для снифа?
Название: Re: upnp и ACE Stream для Android
Отправлено: Benny от 31 Января 2018, 19:40:07
А можно как то увидеть в логах более подробно обмен пакетами
"Пакетами" нет, но можно увидеть более развернутый дебаг-лог если перезаписать оригинальный конф-файл этим в каталоге движка -  http://dl.acestream.org/utils/configs/debug/android/acestream.conf

Название: Re: upnp и ACE Stream для Android
Отправлено: !Joy! от 31 Января 2018, 22:29:14
Более расширенный лог дополнительной информации не дал.
Все что есть по upnp
Spoiler: показать

2018-01-31 21:59:26,859|MainThread|acestream.coreapp|__init__: set preference from persistent config: upnp_enabled=True
.......................
.......................
2018-01-31 21:59:27,052|Thread-18|acestream.upnp|start __retry_discover()
......................
.......................
2018-01-31 21:59:29,092|Thread-18|acestream.upnp|forward: found 1 devices
2018-01-31 21:59:29,104|Thread-18|acestream.upnp|forward: failed to get external ip
2018-01-31 21:59:29,124|Thread-18|acestream.upnp|forward: selectigd() returned http://192.168.1.1:1900/ipc
2018-01-31 21:59:29,132|Thread-18|acestream.upnp|Unable to create Port Forward. Error:Action Failed

Понимать бы ещё на каком этапе какой лог выкидывает... вот например, found 1 devices, говрорит ли о том, что движок получил какой либо ответ от роутера? Скорее всего да... значит путь к xml тоже получить должен.....
В общем постараюсь завтра какой нибудь снифер прикрутить и послушать что там они друг другу говорят.
Если будут какие то рекомендации с вашей стороны, пишите.
Название: Re: upnp и ACE Stream для Android
Отправлено: Benny от 31 Января 2018, 22:42:03
Если будут какие то рекомендации с вашей стороны, пишите.
Войти-выйти, по колесам постучать? =)

Пока "серьезных" рекомендаций нет - все сплошные банальности вроде перезагрузить роутер, сменить порт в приложении на отличный от дефолтного, откатиться на прежнюю версию (последнее врядли поможет, т.к upnp в движке пару лет минимум как не трогали - но вдруг). Виндовая/линуксовая версия нормально через upnp пробрасывает порты с этим роутером?

На текущий момент все /повторяемые/ траблы с upnp были буквально пару раз - в одном случае нестандартная конфигурация сети (когда в ней более 1 роутера анонсят себя по SSDP), во втором - свежая самосборная версия miniupnpd. Все, в остальных случаях оно "просто работает".
Название: Re: Ace Stream и uPnP
Отправлено: !Joy! от 01 Февраля 2018, 14:20:42
И снова здрасте. решил проверить как себя будет вести виндовый движок - ситуация такаяже как и на андройдовском - upnp не работает. Допускаю, что проблема частично лежит на роутере, но учитывая, что с другими прогами роблем нет, решил поизучать доскональней.

Сразу уточню, что в сетевых протоколах и пакетах не проффи, поэтому мои умозаключения могут быть не корректны, разбираюсь с этим на лету при помощи гугла, хабра и других источников.
Эксперемент проводится снифом пакетов на виндовой машине при запуске acestream и utorrent (который проброс получает).
Разница в запросах, начинается еще на этапе посылки широковещательного M-SEARCH заголовок MX: у acestream -2 utorrent -3, но как я понимаю это тайм аут ожидания ответа и он здесь не причем, потому что ответ мы получаем и в первом и во втором случае одинаковый в котором находится локейшен куда стучаться дальше http://192.168.1.1:1900/igd.xml
В следующем запросе GET по высше указанному адрессу, различия в userAgent
acestream - MSWindows/6.1.7601, UPnP/1.0, MiniUPnPc/1.8
utorrent - Microsoft-Windows/6.1 UPnP/1.0
и что то сдаётся мне причина может быть гдето здесь, т.к. после этого ответы роутера уже отличаются.
в случае с айсом приходит ответ с статусом 200 , тоесть как бы ОК но тела в нем нету, а у торента приходит ответ с XML кой в которой указан новый путь куда долбиться в данном случае /13f.xml, куда он потом и совершает GET, а айсстрим же идет на http://192.168.1.1:1900/ipc  с тем же UA и в ответах xml опять не получает, только статус 200.
Можноли самостоятельно, где то в конфиг файлах подправить UA для эксперемента?

Ещё заметил, что при запросе отсутствует заголовок Accept: text/xml, application/xml
И это может быть даже более вероятной причиной пустого ответа.
Название: Re: Ace Stream и uPnP
Отправлено: Benny от 01 Февраля 2018, 14:56:51
решил проверить как себя будет вести виндовый движок - ситуация такая же как и на андройдовском - upnp не работает. Допускаю, что проблема частично лежит на роутере
Не исключено, что проблема обратная - на роутере слишком старая версия (mini)upnpd. Проще всего, конечно, просто обновить прошивку роутера (кстати, я на сайте ТР-Линка "3.13.11 Build 121102" версии софта не нашел - возможно, что совсем старые версии они убрали из загрузок).
Название: Re: Ace Stream и uPnP
Отправлено: !Joy! от 01 Февраля 2018, 17:26:42
Эта версия в своё время была взята с форума тех поддержки этого роутера, в официальных релизах её возможно и не было. Но я повторюсь, она стабильна. Если бы эта проблема была с другим софтом, я бы даже не писал сюда, а разбирался бы сначала с железкой.
А на сколько проблематично добавить заголовок Accept: text/xml, application/xml в первый запрос после search запроса? Насколько я понимаю этот заголовок сообщает серверу с чем клиент хочет работать.
Я к стати нашёл файл (miniupnpc.pyd) в котором проскакивает инфа о заголовках, насколько понимаю, это питоновский скомпиленный файл, следовательно просто в него этот заголовок не забъешь.

Да к стати, если я сильно занудил этот вопрос :), вы скажите.... останусь тогда на ручном варианте. :)
Название: Re: Ace Stream и uPnP
Отправлено: Benny от 01 Февраля 2018, 17:56:55
нашёл файл (miniupnpc.pyd) в котором проскакивает инфа о заголовках, насколько понимаю, это питоновский скомпиленный файл, следовательно просто в него этот заголовок не забъешь.
Все правильно, но вопрос больше не в том, что "не забьешь", а в том, что мы используем готовую (miniupnpc) библиотеку - т.е как ее автор решил, такие заголовки она и шлет.
если я сильно занудил этот вопрос :), вы скажите.... останусь тогда на ручном варианте.
В целом мы заинтересованы в том, чтобы с upnp было как можно меньше проблем, но если пользователь сознательно использует софт старых версий (в котором именно с upnp могут быть проблемы), то тут мы врядли чем поможем.
Для проверки можно попробовать файл из вложения - это upnp клиент, собранный из свежих исходников (проще всего проверять в виндовой версии, остановив движок и заменив в "lib" оригинальный файл).
Название: Re: Ace Stream и uPnP
Отправлено: !Joy! от 02 Февраля 2018, 14:40:49
С новой версией библиотеки miniupnpc.pyd изменений нет, но их и не может быть, т.к. там используются все те же заголовки, что и на предыдущей.
Benny, я вам в личку скинул сообщение.
Название: Re: Ace Stream и uPnP
Отправлено: !Joy! от 03 Февраля 2018, 04:28:07
Benny, вопрос почти решился. Правда, проблема оказалась, таки не в заголовке, но его добавление помогло выявить истинную причину. Проблема кроется в ошибке парсера xml на роутере, а происходит эта ошибка из за поля <NewPortMappingDescription>(его шлет miniupnp когда договаривается с роутером) в этом поле лежит значение "AceStream port 8651 -> 8651" и из за стрелочки а точнее из за ">" парсер сходит с ума видимо думая что тег закрылся. Я правда еще не успел разобраться, вы это значение передаете через API или библиотека формирует, если нужно завтра добью, но пока в файле upnpccommands.c (line:373) и miniupnpc-libevent.c(line:1012) убрал переменные в условном операторе оставив только стринг по умолчанию и все завелось.

ЗЫ.
Я ж говорил что я дотошный :)
Название: Re: Ace Stream и uPnP
Отправлено: !Joy! от 03 Февраля 2018, 14:28:37
Ну вроде разобрался окончательно.
Строка таки передается вашим движком, при вызове методов UPNP_*. Я бы посоветовал использовать для символов - html сущности.
Например красиво выглядит так
"AceStream port 8621 &rArr; 8621"
AceStream port 8621 ⇒ 8621 - в таком варианте ошибок возникать не будет (ну или не должно :) )

И да под виндой библиотеку таки не собрал пока, делал под убунтой, долго искал откуда она распаковывается при запуске движка...
Осталось разобраться как это теперь под андройд сделать, на тут случай если у вас правок не предвидится в ближайшее время.
Название: Re: Ace Stream и uPnP
Отправлено: Benny от 03 Февраля 2018, 17:47:42
!Joy! дотошность, конечно, похвальная, но учитывая что
Проблема кроется в ошибке парсера xml на роутере
(и на этом самом роутере софт времен царя Гороха) на заметку мы это дело возьмем, но править не факт что будем - т.к сейчас исправь "ошибку" здесь, а завтра эта правка аукнется в десятке других мест.
Название: Re: Ace Stream и uPnP
Отправлено: !Joy! от 03 Февраля 2018, 19:54:05
Benny. Править или не править это конечно ваше право. Для себя, я решение думаю найду, возможно понадобиться еще небольшая помощь от вас. Под винду, я благодоря вам библиотеку перекомпилил тоже, осталось разобраться с андройдом.

Но по делу, ошибка на роутере вызвана не недоработкой софта роутера, а нарушением стандарта XML. То что на других роутерах сделана защита от дурака (не в коем случае не в обиду, просто выражение) это конечно их фишка, но есть стандарт, я более чем уверен, что такая проблемма не только у меня, просто многие пользователи вообще не знают и не понимаю, с чем это есть и как оно должно работать, я об upnp.

Давайте я сошлюсь на википедию.
https://ru.wikipedia.org/wiki/XML
Spoiler: показать
Решение проблемы неоднозначности разметки
Употребление разметочных символов в символьных данных затрудняет распознавание конструкций разметки и может создать проблему неоднозначности структуры. В XML эта проблема решается следующим образом: < и & не могут присутствовать в символьных данных и в значениях атрибутов в их непосредственном виде, для их представления в этих случаях зарезервированы специальные сущности:

Символ   Замена
<   &lt;
>   &gt;
&   &amp;
Кроме того, для употребления апострофов и кавычек внутри значений атрибутов используются следующие сущности:

'   &apos;
"   &quot;
Правило замены символов, используемых в разметке, на ими обозначаемые сущности не распространяется на символьные данные в секциях «CDATA», зато выполняется во всех остальных местах документа.


В случае с acestream, вы этого всего не касаетесь, вы просто вызываете метод билиотеки UPNP_AddPortMapping() где шестым аргументом передаете свое значение в виде строки, это значение попадает в метод и занимает свое место в XML документе, и вот здесь возникает трабл.
Вызов метода библиотеки с корректным аргументом, должен решить эту проблему и вряд-ли что то может испортить, т.к. это стринговый параметр не влияющий не на что кроме передачи роутеру названия службы для которой проброшен порт. Если там не будет неразрешенных символов, то и проблем не будет.

Этот-же аргумент вы возможно передаете также в методы
UPNP_AddAnyPortMapping()
UPNP_GetGenericPortMappingEntry()
UPNP_GetSpecificPortMappingEntry()

В общем я поток своих мыслей закончил :)
Если вы мне подскажите как подменить библиотеку miniupnpc на андройде, обещаю от вас отстать и больше не возвращаться к этому вопросу.:)))

Название: Re: Ace Stream и uPnP
Отправлено: Benny от 03 Февраля 2018, 21:27:34
Но по делу, ошибка на роутере вызвана не недоработкой софта роутера, а нарушением стандарта XML.
Нет, это как раз "недоработка софта", а именно upnpd-демона, и то, что в последующих версиях она исправлена - говорит в пользу этого довода.
Ссылка на xml в разрезе "что можно/чего нельзя использовать в строках" правильная, вот только голова об этом должна болеть у автора библиотеки, а не у ее пользователя. Т.е либо автор реализует корректный парсинг строк (включая и "защиту от дурака"), либо явно предупреждает в документации, что в параметрах "foo, bar" использование спец. символов (включая "< >" и их комбинации) - запрещено.
я более чем уверен, что такая проблемма не только у меня
Не исключено, особенно если этот "не только я" также упорно использует старую версию софта с багами. Лично я считаю, что такие пользователи ССЗБ, и не понимаю, почему мы должны ради них писать "костыли" для обхода багов в прошивке, пусть даже в конкретном случае это не сильно трудозатратно.
Если вы мне подскажите как подменить библиотеку miniupnpc на андройде
На выходных врядли, это уже на следующей неделе узнаю.
Название: Re: Ace Stream и uPnP
Отправлено: !Joy! от 04 Февраля 2018, 14:56:46
Цитировать
Не исключено, особенно если этот "не только я" также упорно использует старую версию софта с багами. Лично я считаю, что такие пользователи ССЗБ
Злостные Буратины сидят на этих версиях по нескольким причинам:
а) Они пользователи с большой буквы "П"  и не знают не умеют шиться перешиваться... Купили железку и пользуются.
б) Они продвинуты, и поменяли 10-ток прошивок и выбрали для себя самую стабильную из перепробованных... Ведь согласитесь, свежее не всегда лучше... Это в частности касается роутеров TPLINK.
Давайте пробежимся по нашей переписке
Цитировать
-Есть предположение, что движок "не дружит" с последними версиями miniupnpd....
..........................................
-Тогда действительно странно - со старыми прошивками проблем быть не должно.
..........................................
-Не исключено, что проблема обратная - на роутере слишком старая версия (mini)upnpd.
Получается, как в том анекдоте про пирожок с мясом, мало откусил, еще не видишь мясо, много откусил его опять нет. :)
И как же бедному юзверю выбрать эту середину, чтобы в цель попасть :) Особенно если об upnpc upnpd он не чего не знает.


Цитировать
и не понимаю, почему мы должны ради них писать "костыли" для обхода багов в прошивке, пусть даже в конкретном случае это не сильно трудозатратно.
Ну наверное из-за этого...
Цитировать
В целом мы заинтересованы в том, чтобы с upnp было как можно меньше проблем, но....
И тут получается, как сказано в одном выражении
Все, что сказано до слова "но" не имеет ни какого смысла... :)
© из Игр Престолов, если не ошибаюсь. :)

Костыль или велосипед это сомнительное название для этой правки по моему мнению, с таким же успехом можно сказать, что использование encodeURIComponent при отправке GET запросов тоже костыль. При этом, я согласен с вами, что автор библиотеки должен предусмотреть экранирование спец символов или предупредить о запрете их использования, но если не предусмотрел.... то что забить на это... ведь проблема есть и её можно избежать. Пусть даже в свежих версиях библиотеки это устранено, но есть же железо которое уже не поддерживается разработчиком, а кастомы это не для каждого пользователя.
Разработчики другого софта видимо берут это в расчет, раз на этом роутере с прошивкой старой, как говно мамонта без проблем работают с этой функцией.

Я еще раз категорически утверждаю, править или нет, решать только вам. Если нужно, чтоб было меньше жалоб на upnp, то наверное да, а если ждать, что железо и его софт будет подстраиваться под движок то я бы не делал, в конце концов кому не нравится, пусть не пользуются, можно  же всегда руками пробросить.

В андройде вроде нашел библиотеку по пути data/data/org.acestream.media/files/python/lib/python2.7/lib-dynload/ судя по содержимому собрана на 12й ubuntu. Это оно?
Название: Re: Ace Stream и uPnP
Отправлено: Benny от 04 Февраля 2018, 22:05:33
Злостные Буратины сидят на этих версиях по нескольким причинам:
Не "злостные", а "злобные".
а) это было бы актуально в 2013-2014 году. С тех пор много воды утекло, и вероятность того, что у этих пользователей на сегодняшний день поголовно роутеры с багнутой прошивкой 2012 года (которая, к тому же, не распространялась официально) не сильно велика.
б) за пару десятков метров стоит 1043 ТП-Линк (первой ревизии), который с рожденья не использовался с "родной" прошивкой - только альтернативные. Плюс россыпь ТП-Линков попроще (из популярных 740(1), 840(1) и т.д) на которых как заводские, так и альтернативные прошивки - ни на одном из них этот баг не воспроизводится.
Ну и "продвинутый пользователь" + "древняя заводская прошивка" - для меня лично оксюморон.
И как же бедному юзверю выбрать эту середину, чтобы в цель попасть :) Особенно если об upnpc upnpd он не чего не знает.
Все просто - за "бедного юзверя" подумали производители роутера/прошивок. В свою очередь мы всегда рекомендуем пользователям обновлять софт их роутеров при подозрении, что "что-то не так" именно в прошивке.
Все, что сказано до слова "но" не имеет ни какого смысла...
Это передергивание, т.к в первой цитате я специально выделил италиком, что про "ССЗБ" и "не понимаю" - это лично мое мнение, а во второй - наша "заинтересованность" не распространяется на некрофилов. Для "бедного пользователя" же гораздо важнее это сообщение
на заметку мы это дело возьмем
- т.е программеры наши о проблеме уведомлены, а уж там как карта ляжет.
но есть же железо которое уже не поддерживается разработчиком
Согласен, но в случае упомянутого роутера это не так - на сайте производителя можно найти актуальную версии ПО. Плюс есть как минимум две альтернативы - DD-WRT и OpenWRT. И при всем уважении к "дотошности", лично я сомневаюсь, что были проверены все альтернативные прошивки для этой модели. Скорей поверю в то, что "когда-то не пошло, а теперь и заниматься этим недосуг".
В андройде вроде нашел библиотеку по пути... Это оно?
Не знаю. Андроидная версия движка - не моя "парафия".
Название: Re: Ace Stream и uPnP
Отправлено: !Joy! от 05 Февраля 2018, 03:09:58
Цитировать
И при всем уважении к "дотошности", лично я сомневаюсь, что были проверены все альтернативные прошивки для этой модели. Скорей поверю в то, что "когда-то не пошло, а теперь и заниматься этим недосуг".
Ну почему же не пошло, я же написал, что на то время из того что было, было выбрано, то что понравилось в работе... не одним upnp живет роутер, есть еще UDP Multicast, нагрузка под торрентами и т.д., да и с upnp проблем не наблюдалось, до этой ситуации. Я не говорю, что все прошивки кроме моей говно.. я говорю о том, что работает, не трожь... ну нашился я в свое время, нашился... :) Если подобные проблемы будут повторятся с другим ПО и это будет критично, возможно займусь поиском на что перепрыгнуть. А пока, для себя лично, считаю, более полезным и интересным не перешивать и тестировать прошивки роутера, находя то одни то другие баги в их работе, гораздо с большим интересом покопался в исходниках той же miniupnpc и попробовал разобраться в её работе, для саморазвития.
К стати ещё раз повторюсь, спасибо вам за помощь в этом вопросе.

Есть ещё один вопрос, в одном из первых сообщений в этой теме, один из пользователей жаловался на то, что при убиение движка и его последующего запуска, появлялся новый проброс в роутере, Вы тогда ответили, что
Цитировать
"Перезапускать" корректно, или же после падения/насильственного убиения процесса? В первом случае движок всегда отписывается UPNP серверу - "я закончил, редирект можно убрать", т.е подобного быть не должно.

Во втором случае не все так просто, и конктретно для miniupnpd есть смысл посмотреть на его параметры "clean_ruleset_threshold" и "clean_ruleset_interval".

Хотел спросить, сегодня такое-же поведение при падении, или, движок научился находить свой проброс и не создает новый?
Просто как я понял вызывая UPNP_GetSpecificPortMappingEntry, параметры intClient, intPort и desc передаются по ссылке и потом в эти переменные присваиваются значения полученные из ответного xml, а следовательно, вы их уже можете проверить и в случае совпадения запрос на проброс можно уже не слать. Или я ошибаюсь?

Название: Re: Ace Stream и uPnP
Отправлено: Benny от 05 Февраля 2018, 16:11:09
В андройде вроде нашел библиотеку по пути data/data/org.acestream.media/files/python/lib/python2.7/lib-dynload/ судя по содержимому собрана на 12й ubuntu. Это оно?
Да. Но - "просто собрать в линуксе" получится только для х86 версий Андроида. Под АРМ нужно городить среду кросскомпиляции "с++/python для АРМ", либо собирать прямо на устройстве с целевым CPU/ABI.
я же написал, что на то время из того что было, было выбрано
"На то время" понятно, речь про актуальные (современные) прошивки.
сегодня такое-же поведение при падении
Да, в этом смысле ничего не менялось. Падение и/или принудительная остановка движка - аварийная ситуация, и ради этого городить свой огород вокруr upnp - сомнительная затея, проще отключить его вообще.
Название: Re: Ace Stream и uPnP
Отправлено: !Joy! от 05 Февраля 2018, 18:09:16
Да. Но - "просто собрать в линуксе" получится только для х86 версий Андроида. Под АРМ нужно городить среду кросскомпиляции "с++/python для АРМ", либо собирать прямо на устройстве с целевым CPU/ABI.
Понял... Ну что ж, просто только котята родятся... Будем грызть дальше :)

"На то время" понятно, речь про актуальные (современные) прошивки.
Под вашим давлением пошел вчера на хбт почитать последние страницы по моему девайсу.... даже руки немного зачесались перепрыгнуть на что то альтернативное, но потом опять передумал :) Ну работает он у меня 24/7 месяцами не перезагружаясь, обслуживая 9 проводных клиентов и столько же по wifi, ну что мне ещё от него должно быть нужно??? Кроме того, меня домашние сожрут пока я буду его настраивать, это же интернет, телик работать не будет... :)
В общем, как будет скучно поиграюсь с этим наверное, а пока...
Давайте о роутере закончим..., эту тему мы более чем раскрыли. :)

Да, в этом смысле ничего не менялось. Падение и/или принудительная остановка движка - аварийная ситуация, и ради этого городить свой огород вокруr upnp - сомнительная затея, проще отключить его вообще.
Понял.
Ну тогда, просто чтоб были в курсе, что то что я описывал в прошлом сообщение работает, по крайней мере в консольной прилажухе. После того как отрабатывает UPNP_GetSpecificPortMappingEntry для запрошенного внешнего порта, в intClient, intPort и desc находятся данные полученные от роутера об этом клиенте.
Название: Только один клиент в активном режиме на ip адрес по умолчанию?
Отправлено: kaomis от 06 Июня 2018, 19:53:49
В AceStream по умолчанию для входящих соединений задан порт 8621, что приводит к тому, что если в сети несколько устройств с AceStream, только одно из них способно открыть этот порт для себя, и будет работать в активном режиме. И только оно одно будет способно скачивать и раздавать потоки всем. Остальные устройства будут в пассивном режиме, что значит, что качать и раздавать они могут только активным пользователям. Если сюда прибавить пользователей без белого ip, а так же без upnp или с выключенным upnp, получается пользователей в пассивном режиме намного больше, чем в активном. Они качают поток с активных пользователей, но никому не раздают, т.к. большинство так же в пассивном режиме. И поток фактически глохнет, вместо приумножения. Из-за большого количества пассивных нахлебников вытекает нестабильность трансляций, не только у них, но и у всех.
Во всех торрент клиентах порт при первом запуске генерируется автоматически. В некоторых клиентах есть опция генерировать порт при каждом запуске. Это устраняет коллизию портов в рамках домашней сети, и все устройства по UPNP автоматически отрывают себе разные порты и работают в активном режиме.
Считаю в AceStream необходимо сделать так же. И может быть пойти еще дальше, и сделать перебор нескольких портов, если первый выбранный уже кем-то занят.
Так же AceStream при раздаче потоков должен отдавать приоритет пользователям в активном режиме. Пользователям в пассивном режиме следует раздавать поток по остаточному принципу.
Название: Re: Только один клиент в активном режиме на ip адрес по умолчанию?
Отправлено: Benny от 06 Июня 2018, 20:13:04
И может быть пойти еще дальше, и сделать перебор нескольких портов, если первый выбранный уже кем-то занят.
Это уже сделано посредством upnp - движок запрашивает у роутера проброс порта, и если такой порт уже используется, то значение порта увеличивается на 1.
Если же в силу каких либо причин (неработоспособность или отключенный upnp) автоматическое изменение порта не работает, то никто не запрещает изменить порт вручную - эта опция есть во всех клиентах, как для ПК, так и для Андроида.