From cd67a3dd4dab54da6f780505c5cb500f25812ab3 Mon Sep 17 00:00:00 2001 From: polaris Date: Wed, 16 Apr 2014 08:45:18 -0400 Subject: [PATCH] Return public IP instead of local IP --- gamespy_server_browser_server.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/gamespy_server_browser_server.py b/gamespy_server_browser_server.py index fe6ab64..66f286e 100644 --- a/gamespy_server_browser_server.py +++ b/gamespy_server_browser_server.py @@ -281,21 +281,24 @@ class Session(LineReceiver): if "natneg" in server_info: flags |= ServerListFlags.CONNECT_NEGOTIATE_FLAG + ip = 0 if self.console != 0: - flags_buffer += utils.get_bytes_from_int_be(int(server_info['publicip'])) # Wii + ip = utils.get_bytes_from_int_be(int(server_info['publicip'])) # Wii + flags_buffer += ip else: - flags_buffer += utils.get_bytes_from_int(int(server_info['publicip'])) # DS + ip = utils.get_bytes_from_int(int(server_info['publicip'])) # DS + flags_buffer += ip flags |= ServerListFlags.NONSTANDARD_PORT_FLAG flags_buffer += utils.get_bytes_from_short_be(int(server_info['publicport'])) - #if "localip0" in server_info: - # flags |= ServerListFlags.PRIVATE_IP_FLAG - # flags_buffer += bytearray([int(x) for x in server_info['localip0'].split('.')]) + if "localip0" in server_info: + flags |= ServerListFlags.PRIVATE_IP_FLAG + flags_buffer += ip #bytearray([int(x) for x in server_info['localip'].split('.')]) - #if "localport" in server_info: - # flags |= ServerListFlags.NONSTANDARD_PRIVATE_PORT_FLAG - # flags_buffer += utils.get_bytes_from_short_be(int(server_info['localport'])) + if "localport" in server_info: + flags |= ServerListFlags.NONSTANDARD_PRIVATE_PORT_FLAG + flags_buffer += utils.get_bytes_from_short_be(int(server_info['localport'])) flags |= ServerListFlags.ICMP_IP_FLAG flags_buffer += bytearray([int(x) for x in "0.0.0.0".split('.')])