-
Постов
51 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
Ponywka стал победителем дня 13 апреля
Ponywka имел наиболее популярный контент!
Оборудование
-
Кинетик
KN-1011, KN-1012
Посетители профиля
487 просмотров профиля
Достижения Ponywka

Продвинутый пользователь (3/6)
66
Репутация
-
v0.1.9 (GitLab Release) Changelog: Frontend: В браузере теперь хранится информация о ранее открытых и закрытых группах (спасибо @shevernitskiy). Frontend: Улучшен Drag and Drop (перетаскивание) правил внутри группы (спасибо @shevernitskiy). Frontend: Добавлена кнопка "Вернуться наверх" для ПК вёрстки (спасибо @shevernitskiy). Frontend: Веб-панель теперь не сбрасывает интерфейс, если в данный момент его нет (спасибо @shevernitskiy). Frontend: Исправлены правила для валидации паттернов типа domain, namespace и wildcard. Frontend: Теперь сайт можно сохранить как PWA приложение (спасибо @dan0102dan). Frontend: При создании новой группы ей сразу создаётся пустое правило. Frontend: Ссылки Issue List и Source Code обновлены на GitLab. Frontend: Обновлены иконки для скрытия / раскрытия списка правил (по результатам опроса в Telegram-канале). Backend: Исправлена маршрутизация UDP соединений. Backend: Исправлен RegEx (теперь применяется реализация dlclark/regexp2) (спасибо @dan0102dan). Backend: Добавлен параметр showAllInterfaces для ситуаций, если не интерфейс, который не имеет флага POINTOPOINT. Backend (Keenetic): Исправлен запуск при перезагрузке роутера (спасибо @dan0102dan). CI/CD: Исправлена нумерация Dev пакетов. CI/CD: Временно убраны сборки для не-Keenetic'овских пакетов.
-
Учитывая, что разработчики программы сами подцепляются к Keenetic NDMS - то они должны учитывать тот формат, который сам Keenetic и предоставляет. Главное документировать! А зачем TCP/UDP в рамках одного устройства? Если нужно подцепляться удалённо, то пускай свой сервис пишут для этого, который будет оборачивать UNIX в TCP. Но суть понял... Что-ж... Ладно
-
Здравствуйте! В продолжение темы "Keenetic NDMS очищает IPTables во время запуска программы" хотел бы дополнить свои хотелки на счёт событий "/opt/etc/ndm/***". Так получилось, что мой софт не является Bash скриптом, и чтобы ловить события "netfilter.d" - мне пришлось написать небольшой костыль, который тянет за собой пакет "socat" и с помощью него "пробрасывает" это событие в мою программу: https://github.com/MagiTrickle/MagiTrickle/blob/0cc26dd0762e69294476a173502068e3359cb2c3/opt/etc/ndm/netfilter.d/100-magitrickle #!/bin/sh SOCKET_PATH="/opt/var/run/magitrickle.sock" [ -S "$SOCKET_PATH" ] || exit BODY="{\"type\":\"$type\",\"table\":\"$table\"}" LENGTH=$(printf "%s" "$BODY" | wc -c) socat - UNIX-CONNECT:"$SOCKET_PATH" >/dev/null 2>&1 <<EOF POST /api/v1/system/hooks/netfilterd HTTP/1.1 Host: Content-Type: application/json Content-Length: $LENGTH $BODY EOF Очень хотелось бы обойтись без подобных костылей и вместо этого получать эти события по тем же UNIX-сокетам или же любым другим способом, удобным на команды разработки Keenetic NDMS.
-
Здравствуйте! Я являюсь разработчиком пакета MagiTrickle. В чате по моей программе неоднократно жаловались на проблему с автоматическим запуском программы после перезагрузки роутера. В свою очередь у меня же такой проблемы не наблюдалось и очень долго для меня было загадкой такое странное поведение программы. Добавив скрипт на автоматический перезапуск роутера и также собирая логи, в один из перезапусков я получил от своей программы следующие ошибки: Здесь сервис успел запуститься, а "error while fixing iptables in group" возникает на событие "/opt/etc/ndm/netfilter.d/***". Здесь по дублирующимся логам (вторая и третья ошибка) можно понять, что очистка IPTables вызывалась несколько раз за короткий промежуток времени, что и вызывало ошибку "iptables: No chain/target/match by that name", однако учитывая, что софт по итогу в любом случае получал событие "/opt/etc/ndm/netfilter.d/***" - я закрывал на это глаза. По итогу, когда мне предоставили логи, возникающие во время запуска моей программы, до меня наконец дошло по какой причине моя программа не запускается должным образом: Так совпало, что очистка IPTables со стороны Keenetic NDMS вызывалась в тот момент, когда моя программа только-только запускалась, т.е. по временной линии это выглядит как: MagiTrickle создаёт цепочку в IPTables с названием MT_xxxxxxxx. MagiTrickle наполняет цепочку MT_xxxxxxxx. Keenetic NDMS в этот же момент очищает IPTables. MagiTrickle упал в ошибку, ибо он все ещё наполнял цепочку, которой уже не стало. Ошибки во время запуска я игнорировать не могу, ибо неправильное заполнение IPTables (когда iptables возвращает статус 1) подразумевает неправильную работу IPTables требующего постороннего вмешательства (например, если пакет установлен на другой роутер, предположим на AsusWRT, где может не быть какого-то модуля ядра Linux расширяющего функционал IPTables - Entware всё-таки не привязан к Keenetic; а собственно мой софт тоже). Следует также помнить, что мой софт не является Bash скриптом - это исполняемый бинарный файл, который вызывается (автоматически) только один раз - во время запуска службы ("/opt/etc/init.d/***"). Из всего вышесказанного хотелось бы получить какое-то решение со стороны команды разработчиков Keenetic по поводу данной проблемы. Одни из вариантов: В Keenetic NDMS перестать очищать IPTables (предположительно требует очень много работы со стороны команды разработчиков Keenetic, так что обрасывается); Keenetic NDMS может сообщать по тем же эвентам о том, что он намеревается очистить IPTables за условные пол секунды до очистки, чтобы софт мог "подождать" работу Keenetic NDMS перед выполнением своих команд (предполагает добавление таймаутов, что будет являться костылём в Keenetic NDMS); Добавить в Keenetic NDMS возможность блокировать очистку IPTables на условные 5 секунд, когда сама программа (а по факту скрипт запуска службы в файле "/opt/etc/init.d/***") будет сообщать Keenetic NDMS о том, что сейчас лучше не очищать IPTables и требуется подождать. Буду рад ответу со стороны команды разработчиков Keenetic!
- 4 ответа
-
- 7
-