| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .. | ||
| include | ||
| tests | ||
| args.c | ||
| args.h | ||
| batch.c | ||
| build.sh | ||
| compat.c | ||
| compat.h | ||
| luajit_compat.h | ||
| README.md | ||
| sync-upstream.sh | ||
winws2 без Cygwin
Это форк bol-van/zapret2. Отличие одно: winws2.exe собирается как обычная программа Windows и не требует cygwin1.dll. Файлы автора почти не тронуты, всё своё лежит в этой папке, поэтому правки оригинала подтягиваются автоматически.
Что добавлено
- Сборка под Windows компилятором llvm-mingw прямо на Linux:
nfq2/winnative/build.sh. Результат —binaries/my/winnative-x86_64/winws2.exe, рядом нужны толькоWinDivert.dllи драйвер. - Пакетная отправка. Пакеты, которые движок не менял, возвращаются в сеть пачкой одним вызовом. Отключается переменной окружения
WINWS2_NO_BATCH=1. - Управление без сигналов Linux:
winws2 --wn-signal=<hup|usr1|usr2|term>[:<pid>].hupперечитывает списки,usr1иusr2печатают служебные таблицы,termаккуратно останавливает движок. Без номера процесса команда уходит всем запущенным winws2. - Файл конфигурации любого размера.
@файли$файлчитаются целиком; путь может содержать пробелы и русские буквы. - Быстрый журнал отладки: файл журнала открывается один раз, а не на каждую строку.
Как устроено
compat.hподключается к каждому файлу автора и изображает для него окружение Cygwin.compat.cзаменяет функции Cygwin: файлы с путями в UTF-8, преобразование путей, сигналы.args.cразбирает командную строку и@файлпо тем же правилам, что Cygwin. Отличие: фигурные скобки без кавычек не раскрываются.batch.c— пакетная отправка.tests/run.sh— проверки разбора аргументов, запускаются на Linux.tests/stop_race.py— серия «запуск — остановка» на Windows: ловит запись опоздавшего пакета в освобождённый буфер при остановке.sync-upstream.sh— подтянуть оригинал, собрать, проверить, отправить.
Сборка
# один раз: распаковать llvm-mingw (вариант msvcrt) в ~/tools/llvm-mingw
nfq2/winnative/build.sh
nfq2/winnative/tests/run.sh
LuaJIT и zlib скрипт скачивает и собирает сам.