Стенд: механизм captive portal без телефона (K1a-K1d) - #464
Merged
Merged
Conversation
Окно портала на телефоне всплывает от цепочки из трёх звеньев прошивки, и ни одно из них до сих пор ничем не проверялось: - K1a: DNS точки отвечает её адресом на любое имя (AT+CIPDOMAIN); - K1b: проверочные адреса Android, Apple, Windows и Firefox отвечают редиректом 302 на портал, wpad.dat - 404; - K1c: `/` отдаёт посадочную страницу по состоянию; признак настройки берётся из /api/main_status, а не из лога прошивки; - K1d (в W2): после неверного пароля `/` отдаёт страницу ошибки. test_strings.js: посадочные страницы без <script>. Известное исключение - captive_portal_error.html: причину ошибки она пишет скриптом, и в окне айфона, где JavaScript выключен, причины не будет. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DQy577C8CwJr3uGxQsXyXG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Зачем
Captive portal целиком числился в ручных проверках (K1,
04_not-tested.md§7): «нужен телефон». Но окно на телефоне всплывает от трёх звеньев прошивки (active_point.cpp), и все три AT-плата проверяет так же, как телефон.Что проверяется
192.168.4.1на любое имя (AT+CIPDOMAIN). При провале в сообщении — какой DNS плата спрашивает (AT+CIPDNS?): ESP-AT до выдачи DNS по DHCP ходит на 208.67.222.222connecttest.txt→logout.net;wpad.dat→ 404. Запрос по имени, через DNS портала, с тем жеHost/отдаёт посадочную страницу по состоянию. Признак «вход не настроен» берётся из/api/main_status(плашки 2/3 бывают только приfactor1 == AUTO), а не из лога прошивки/отдаётcaptive_portal_error.html(если вход не настроен)test_strings.jscaptive_portal*.htmlбез<script>Код редиректа 302 — из
AsyncWebServerRequest::redirectзакреплённого форкаwaterius/ESPAsyncWebServer#20230926.Находка
captive_portal_error.htmlподключаетstrings.jsи пишет причину ошибки черезfill_tr_id(исправление X1 в 2.0.50). По комментарию вactive_point.cppмини-браузер айфона скрипты не выполняет — в окне captive portal на айфоне причины ошибки не будет. В тесте это записано известным исключением; решать, подставлять ли причину на сервере, — отдельно.Проверка
python3 -m pytest Utils/hil/selftest -q— 71 passed (новыйselftest/test_captive.py: разбор+CIPDOMAIN, узнавание страницы по образу с подстановкой, признак настройки)node ESP8266/scripts/test_strings.js— 26 passedpytest Utils/hil/test_captive.py --stand -vиpytest Utils/hil/test_wizard.py -k W2 --stand -v🤖 Generated with Claude Code
https://claude.ai/code/session_01DQy577C8CwJr3uGxQsXyXG