stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test
- 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
This commit is contained in:
1 parent
a3783b5f55
commit
38c9f229bc
1272 files changed
+968388
-1
No files matched your search
@@ -0,0 +1,60 @@
|
||||
cmake_minimum_required(VERSION 3.22)
|
||||
project("utun_bridge")
|
||||
|
||||
set(LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../lib)
|
||||
set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../src)
|
||||
set(CFG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../libutun_lite)
|
||||
set(JNI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../jni_bridge)
|
||||
set(TOOLS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../..)
|
||||
|
||||
include(${CFG_DIR}/utun_sources.cmake)
|
||||
utun_setup_sources("${LIB_DIR}" "${SRC_DIR}" "${CFG_DIR}" "${TOOLS_DIR}")
|
||||
|
||||
# Include Opus codec wrapper (was excluded before voice support)
|
||||
# list(FILTER UTUN_SOURCES EXCLUDE REGEX "opus_codec\\.c$")
|
||||
|
||||
# Exclude tun_windows and tun_freebsd (Android is Linux-like)
|
||||
list(FILTER UTUN_SOURCES EXCLUDE REGEX "tun_windows\\.c$")
|
||||
list(FILTER UTUN_SOURCES EXCLUDE REGEX "tun_freebsd\\.c$")
|
||||
|
||||
# Add libopus sources (for voice recording)
|
||||
file(GLOB_RECURSE _OPUS_SRC "${LIB_DIR}/libopus/src/*.c"
|
||||
"${LIB_DIR}/libopus/celt/*.c" "${LIB_DIR}/libopus/silk/*.c"
|
||||
"${LIB_DIR}/libopus/silk/float/*.c")
|
||||
list(FILTER _OPUS_SRC EXCLUDE REGEX "/x86/")
|
||||
list(APPEND UTUN_SOURCES ${_OPUS_SRC})
|
||||
list(APPEND UTUN_INCLUDE_DIRS "${LIB_DIR}/libopus" "${LIB_DIR}/libopus/include"
|
||||
"${LIB_DIR}/libopus/celt" "${LIB_DIR}/libopus/silk" "${LIB_DIR}/libopus/silk/float")
|
||||
# Opus requires these to be defined (or HAVE_CONFIG_H + config.h with VAR_ARRAYS)
|
||||
list(APPEND UTUN_DEFINES OPUS_BUILD VAR_ARRAYS USE_ALLOCA)
|
||||
|
||||
# Prebuilt OpenSSL (cross-compiled for Android)
|
||||
set(OPENSSL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/openssl/${ANDROID_ABI})
|
||||
add_library(openssl_crypto STATIC IMPORTED)
|
||||
set_target_properties(openssl_crypto PROPERTIES
|
||||
IMPORTED_LOCATION "${OPENSSL_DIR}/lib/libcrypto.a"
|
||||
)
|
||||
|
||||
# OBJECT library: compile .c once, link into SHARED
|
||||
add_library(utun_core OBJECT ${UTUN_SOURCES})
|
||||
target_include_directories(utun_core PRIVATE
|
||||
${UTUN_INCLUDE_DIRS} ${JNI_DIR} ${OPENSSL_DIR}/include
|
||||
)
|
||||
target_compile_definitions(utun_core PRIVATE ${UTUN_DEFINES} __ANDROID__)
|
||||
set_target_properties(utun_core PROPERTIES C_STANDARD 99 C_STANDARD_REQUIRED ON)
|
||||
|
||||
# JNI bridge + link into shared library
|
||||
add_library(utun SHARED
|
||||
${JNI_DIR}/android_jni_bridge.c
|
||||
${JNI_DIR}/android_udp_log.c
|
||||
$<TARGET_OBJECTS:utun_core>
|
||||
)
|
||||
|
||||
target_include_directories(utun PRIVATE
|
||||
${UTUN_INCLUDE_DIRS} ${JNI_DIR} ${OPENSSL_DIR}/include
|
||||
)
|
||||
target_compile_definitions(utun PRIVATE ${UTUN_DEFINES} __ANDROID__)
|
||||
set_target_properties(utun PROPERTIES C_STANDARD 99 C_STANDARD_REQUIRED ON)
|
||||
|
||||
find_library(log-lib log)
|
||||
target_link_libraries(utun ${log-lib} openssl_crypto)
|
||||
Reference in new issue
Block a user