github liulilittle/openppp2 1.0.0.26146

7 hours ago

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: Updated VEthernetNetworkSwitcher.cpp to correctly detect IPv6 addresses and register IPv6 routes in the routing table (previously only IPv4 routes were handled via fib_add_route_ipv4). Added proper IPv6 endpoint parsing and bracketed literal support ([IPv6]:port) in Ipep.cpp and UriAuxiliary.cpp for 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.dll is 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_skt prevented 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.dll is present in the x86/x64 directories; otherwise falls back to TAP driver.

  • e68a83f: Extended NetworkInterface::BypassLoadList to 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_sysnat TC 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 GetUnderlyingNetworkInterface and eliminated a potential authentication memory leak in VirtualEthernetManagedServer.

  • 7b94e02: Added proper handling for ARM environments where system headers define htole32/le32toh as macros (expanding to __uint32_identity).

  • 419c268: Fixed type index error in digest.cpp when hash_hmac processes 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 --congestions parameter 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.

Don't miss a new openppp2 release

NewReleases is sending notifications on new releases.