Fixed crash in natneg and made statuses per-game

- Fixed crash in natneg.
- Made status updates only send to friends who are playing the same
game.
This commit is contained in:
polaris
2014-04-05 18:45:46 -04:00
parent 61f0f135f8
commit 13a37e8e6e
2 changed files with 4 additions and 2 deletions

View File

@@ -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 = []

View File

@@ -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