diff --git a/gamespy_server.py b/gamespy_server.py index 330e8b3..0da7a6a 100644 --- a/gamespy_server.py +++ b/gamespy_server.py @@ -15,6 +15,7 @@ class PlayerSession(LineReceiver): self.db = gs_database.GamespyDatabase() self.profileId = 0 self.address = addr + self.gameid = "" def get_ip_as_int(self, address): ipaddress = 0 @@ -119,6 +120,7 @@ class PlayerSession(LineReceiver): msg_d.append(('id', data_parsed['id'])) msg = gs_query.create_gamespy_message(msg_d) + self.gameid = authtoken_parsed['gsbrcd'][0:4] self.profileid = profileid utils.print_log("SENDING: %s" % msg) @@ -258,7 +260,7 @@ class PlayerSession(LineReceiver): buddies = self.db.get_buddy_list(self.profileid) for buddy in buddies: - if buddy['buddyProfileId'] in self.sessions: + if buddy['buddyProfileId'] in self.sessions and self.sessions[buddy['buddyProfileId']].gameid == self.gameid: status_msg = "|s|%s|ss|%s|ls|%s|ip|%d|p|0|qm|0" % (self.sessions[buddy['buddyProfileId']].status, self.sessions[buddy['buddyProfileId']].statstring, self.sessions[buddy['buddyProfileId']].locstring, self.get_ip_as_int(self.sessions[buddy['buddyProfileId']].address.host)) msg_d = [] diff --git a/natneg_server.py b/natneg_server.py index 9508769..76902fe 100644 --- a/natneg_server.py +++ b/natneg_server.py @@ -75,7 +75,7 @@ while 1: s.sendto(output, addr) if recv_data[7] == '\x06': # Was able to connect - client_id = "%02x" % ord(recv_data[14]) + client_id = "%02x" % ord(recv_data[13]) if gameid not in session_list: pass