Read connection state from OpenVPN's management interface #22
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
tunnel.py:ovpn()(roughly 421-513) is a string-match state machine overOpenVPN's stdout:
Initialization Sequence Completed,TUN/TAP device,PUSH: Received control message,Restart pause,SIGTERM[soft,auth-failure],Exiting due to fatal error.Three of those print zero times under DCO, the default data path since
OpenVPN 2.6. That is the root cause of the device-detection and DNS failures.
The management interface delivers the same information as structured, versioned
events (
>STATE:,>FATAL:,>PASSWORD:,>BYTECOUNT:) over a socket.Sequencing matters -- this is the second move, not the first:
--dns/ resolved integration rather than portingthe pushed-DNS scrape
Roughly half of what the log scrape does is better eliminated than migrated,
and doing so shrinks what the management client has to cover.
Scope beyond parsing: auth failures arrive as an interactive
>PASSWORD:promptanswered over the socket, which changes how credentials reach OpenVPN.
Will not fix: double-hop orchestration (
tunnel.py:172-198), thestunnel/SSH side channels (
tunnel.py:531-572), or firewall/bypass logic.