Release 1.0.0.26146 · liulilittle/openppp2
Fix the issue where static tunnel IPv6 does not add routes, causing inability to access the internet · 23cf06a
This release incorporates every commit since Fixing LWIP Stack Shutdown Issues and Optimizations · a789c61.
Full Changelog: All changes and fixes from a789c61 to the latest commit (newest first)
-
23cf06a: Fixed the critical issue where static tunnel IPv6 routes were not being added, causing complete failure of IPv6 connectivity and inability to access the internet in static tunnel mode.
Details: UpdatedVEthernetNetworkSwitcher.cppto correctly detect IPv6 addresses and register IPv6 routes in the routing table (previously only IPv4 routes were handled viafib_add_route_ipv4). Added proper IPv6 endpoint parsing and bracketed literal support ([IPv6]:port) inIpep.cppandUriAuxiliary.cppfor RFC-compliant URI/endpoint handling. Minor build configuration cleanup in Linux AMD64 targets and resource file updates. This fully restores dual-stack and IPv6-only static tunnel functionality. -
0ee2609: Enhanced Wintun driver detection to search multiple local and system directories. If
wintun.dllis found, Wintun is used; otherwise it falls back to the original TAP-Windows driver, greatly improving deployment flexibility on Windows. -
130f68d: Fixed a severe memory leak in client mode where failing to bind
vmux_sktprevented proper release of connection resources over long periods. -
b73b11d: Resolved Windows-specific failure when starting the Wintun virtual network adapter and setting its interface address (caused by IP address conflicts with other applications).
-
75a62e3: Added full native support for the Wintun driver in Windows builds. Automatically prefers Wintun if
wintun.dllis present in the x86/x64 directories; otherwise falls back to TAP driver. -
e68a83f: Extended
NetworkInterface::BypassLoadListto support additional string path separators for more robust bypass list handling. -
b67eaf1: Fixed TC network driver startup conflict where other PPP processes attaching to different virtual adapters would cause the original process’s TC driver to fail and auto-restart.
-
505e452: Integrated the
openppp2_sysnatTC network driver NAT on Linux, delivering major performance gains (tested 900 Mbps throughput on dual-core N5095A). -
a012dd3: Corrected TAP virtual network adapter selection logic on Windows.
-
2951829: Removed redundant reset operations that were previously required due to differences in C++ compilers and STL implementations. With stricter compiler/STL constraints, these are no longer needed.
-
4c38d19: Fixed spelling error in function
GetUnderlyingNetworkInterfaceand eliminated a potential authentication memory leak inVirtualEthernetManagedServer. -
7b94e02: Added proper handling for ARM environments where system headers define
htole32/le32tohas macros (expanding to__uint32_identity). -
419c268: Fixed type index error in
digest.cppwhenhash_hmacprocesses SHA-family algorithms. -
ab60aa1: Addressed multiple undefined behavior (UB) issues, marker release problems, transport layer confusion, an always-false
if (i == max)condition, and Int128 implementation compatibility problems. -
c92baaf: Fixed a batch of potential and urgent C++ undefined behavior issues across the codebase.
-
490f207: Aligned Windows TUN mode gateway configuration with cross-platform standards while preserving full backward compatibility.
-
5288569: Corrected command-line argument parsing documentation and fixed the
--congestionsparameter description.
Base commit (a789c61):
Fixing LWIP Stack Shutdown Issues and Optimizations
Extensive refactoring and stabilization of the LWIP network stack (172 files changed, +3,208 / -3,094 lines). Resolved shutdown-related bugs, improved resource cleanup, and optimized core networking behavior used by the virtual Ethernet tunnel.
This version significantly improves IPv6 static tunnel reliability, Windows driver compatibility (Wintun + TAP), memory stability, Linux performance via sysnat, cross-platform consistency, and overall code robustness. All existing features (TAP/Wintun, client mode, SYSNAT, etc.) remain fully backward compatible.
Highly recommended for users running static tunnels with IPv6 or Wintun on Windows.