From 7cc4e85f6d27ce03caac43b6f2744e8f19f27d89 Mon Sep 17 00:00:00 2001 From: Daniel Collins Date: Tue, 27 Nov 2018 18:53:59 +0000 Subject: [PATCH] IDirectPlay8Peer: Implement DPLITE_CONNECT_IP environment variable. If set, this will override the host IP address to connect to in IDirectPlay8Peer::Connect() --- src/DirectPlay8Peer.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/DirectPlay8Peer.cpp b/src/DirectPlay8Peer.cpp index bfe5536..ce1d708 100644 --- a/src/DirectPlay8Peer.cpp +++ b/src/DirectPlay8Peer.cpp @@ -481,6 +481,25 @@ HRESULT DirectPlay8Peer::Connect(CONST DPN_APPLICATION_DESC* CONST pdnAppDesc, I return DPNERR_INVALIDHOSTADDRESS; } + const char *override_ip = getenv("DPLITE_CONNECT_IP"); + if(override_ip != NULL) + { + struct in_addr hostname_addr; + if(inet_pton(AF_INET, override_ip, &hostname_addr) == 1) + { + log_printf( + "DPLITE_CONNECT_IP environment variable is set, connecting to '%s' instead", + override_ip); + r_ipaddr = hostname_addr.s_addr; + } + else{ + log_printf( + "DPLITE_CONNECT_IP environment variable contains invalid IP address: %s", + override_ip); + return DPNERR_INVALIDHOSTADDRESS; + } + } + if(l_port == 0) { /* Start at a random point in the ephemeral port range and try each one, wrapping