- u_async.c: process immediate_queue BEFORE epoll_wait in uasync_poll - stcp_link.c: defensive NULL etcp_conn/etcp_link in stcp_link_close - utun_instance.c: move stcp_server_list_destroy_all to Phase J (before ETCP), add deferred drain in both Phase J and L - stcp.h/c: STCP_HS_ENC_CLIENT 6→38, STCP_HS_ENC_SERVER 7→39, exchange ed25519_pubkey in both handshake directions - etcp_connections.c: copy peer_ed25519 from STCP to ETCP_CONN in etcp_link_enter_ready_tcp; guard link->etcp in tcp_link_close_cb - chat_sync.c: fix lk->conn NULL dereference for TCP links - test_stcp.c: update stcp_server_create/stcp_client_connect callsites - tools/chat_tcp_test: change transport udp→tcp
61 lines
1.4 KiB
Bash
Executable File
61 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
# Проверка и установка зависимостей
|
|
need_install=""
|
|
|
|
for cmd in autoreconf aclocal automake libtoolize; do
|
|
if ! command -v "$cmd" >/dev/null 2>&1; then
|
|
need_install=1
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ -n "$need_install" ]; then
|
|
echo "Устанавливаются необходимые пакеты..."
|
|
pkg update
|
|
pkg install -y autoconf automake libtool pkgconf openssl
|
|
fi
|
|
|
|
mkdir -p m4
|
|
|
|
echo "=== Полная пересборка uTun ==="
|
|
|
|
# 1. Очистка
|
|
echo "[1/4] Очистка..."
|
|
make distclean 2>/dev/null || true
|
|
rm -f config.h config.status config.log
|
|
rm -f configure.log autoreconf.log build.log
|
|
|
|
# 2. Генерация configure
|
|
echo "[2/4] Автогенерация..."
|
|
autoreconf -fi 2>&1 | tee autoreconf.log
|
|
|
|
# Проверяем, появился ли configure
|
|
if [ ! -f configure ]; then
|
|
echo "Ошибка: autoreconf не создал configure."
|
|
exit 1
|
|
fi
|
|
|
|
chmod +x configure
|
|
|
|
# 3. Конфигурация
|
|
echo "[3/4] Конфигурация..."
|
|
./configure --prefix=/usr/local 2>&1 | tee configure.log
|
|
|
|
# Определяем количество ядер
|
|
if command -v nproc >/dev/null 2>&1; then
|
|
JOBS=$(nproc)
|
|
else
|
|
JOBS=$(sysctl -n hw.ncpu)
|
|
fi
|
|
|
|
# 4. Сборка
|
|
echo "[4/4] Сборка..."
|
|
make -j"$JOBS" 2>&1 | tee build.log
|
|
|
|
echo
|
|
echo "=== Готово ==="
|
|
echo "Бинарный файл: src/utun"
|