diff --git a/core/hw/modem/picoppp.cpp b/core/hw/modem/picoppp.cpp index e297e6c63..d9fd740e3 100644 --- a/core/hw/modem/picoppp.cpp +++ b/core/hw/modem/picoppp.cpp @@ -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);