Support for Internet Game Pack game

This commit is contained in:
Flyinghead 2019-08-14 09:17:07 +02:00
parent 3e1956b949
commit e34df4fed1
1 changed files with 7 additions and 3 deletions

View File

@ -45,6 +45,7 @@ extern "C" {
#define RESOLVER1_OPENDNS_COM "208.67.222.222"
#define AFO_ORIG_IP 0x83f2fb3f // 63.251.242.131 in network order
#define IGP_ORIG_IP 0xef2bd2cc // 204.210.43.239 in network order
static struct pico_device *ppp;
@ -238,7 +239,7 @@ static void tcp_callback(uint16_t ev, struct pico_socket *s)
}
else
{
pico_ipv4_to_string(peer, orig.addr);
pico_ipv4_to_string(peer, sock_a->local_addr.ip4.addr);
//printf("Connection established from %s:%d to %08x:%d\n", peer, short_be(port), sock_a->local_addr.ip4.addr, short_be(sock_a->local_port));
pico_socket_setoption(sock_a, PICO_TCP_NODELAY, &yes);
/* Set keepalive options */
@ -260,8 +261,11 @@ static void tcp_callback(uint16_t ev, struct pico_socket *s)
memset(&serveraddr, 0, sizeof(serveraddr));
serveraddr.sin_family = AF_INET;
serveraddr.sin_addr.s_addr = sock_a->local_addr.ip4.addr;
if (serveraddr.sin_addr.s_addr == AFO_ORIG_IP) // Alien Front Online
serveraddr.sin_addr.s_addr = afo_ip.addr;
if (serveraddr.sin_addr.s_addr == AFO_ORIG_IP // Alien Front Online
|| serveraddr.sin_addr.s_addr == IGP_ORIG_IP) // Internet Game Pack
{
serveraddr.sin_addr.s_addr = afo_ip.addr; // same ip for both for now
}
serveraddr.sin_port = sock_a->local_port;
set_non_blocking(sockfd);