mirror of
https://github.com/barronwaffles/dwc_network_server_emulator.git
synced 2026-09-08 19:25:11 -05:00
Enabled keep alive in profile server
This commit is contained in:
@@ -64,6 +64,9 @@ class PlayerSession(LineReceiver):
|
||||
self.statstring = ""
|
||||
self.locstring = ""
|
||||
|
||||
self.keepalive = int(time.time())
|
||||
self.sesskey = ""
|
||||
|
||||
def log(self, level, message):
|
||||
if self.profileid == 0:
|
||||
if self.gameid == "":
|
||||
@@ -86,6 +89,8 @@ class PlayerSession(LineReceiver):
|
||||
return ipaddress
|
||||
|
||||
def connectionMade(self):
|
||||
self.transport.setTcpKeepAlive(1)
|
||||
|
||||
self.log(logging.INFO, "Received connection from %s:%d" % (self.address.host, self.address.port))
|
||||
|
||||
# Create new session id
|
||||
@@ -115,6 +120,7 @@ class PlayerSession(LineReceiver):
|
||||
|
||||
if self.session in self.sessions:
|
||||
del self.sessions[self.session]
|
||||
self.db.delete_session(self.session)
|
||||
self.log(logging.INFO, "Deleted session %d" % self.sessions)
|
||||
|
||||
def rawDataReceived(self, data):
|
||||
@@ -227,14 +233,14 @@ class PlayerSession(LineReceiver):
|
||||
|
||||
if profileid != None:
|
||||
# Successfully logged in or created account, continue creating session.
|
||||
sesskey = self.db.create_session(profileid)
|
||||
self.sesskey = self.db.create_session(profileid)
|
||||
|
||||
self.sessions[profileid] = self
|
||||
|
||||
msg_d = []
|
||||
msg_d.append(('__cmd__', "lc"))
|
||||
msg_d.append(('__cmd_val__', "2"))
|
||||
msg_d.append(('sesskey', sesskey))
|
||||
msg_d.append(('sesskey', self.sesskey))
|
||||
msg_d.append(('proof', proof))
|
||||
msg_d.append(('userid', userid))
|
||||
msg_d.append(('profileid', profileid))
|
||||
@@ -326,11 +332,17 @@ class PlayerSession(LineReceiver):
|
||||
|
||||
|
||||
def perform_ka(self, data_parsed):
|
||||
# No op
|
||||
return
|
||||
self.keepalive = int(time.time())
|
||||
|
||||
msg_d = []
|
||||
msg_d.append(('__cmd__', "ka"))
|
||||
msg_d.append(('__cmd_val__', ""))
|
||||
msg = gs_query.create_gamespy_message(msg_d)
|
||||
self.transport.write(msg)
|
||||
|
||||
|
||||
def perform_status(self, data_parsed):
|
||||
sesskey = data_parsed['sesskey']
|
||||
self.sesskey = data_parsed['sesskey']
|
||||
|
||||
#fields = []
|
||||
#fields.append(("stat", data_parsed['statstring']))
|
||||
@@ -537,7 +549,6 @@ class PlayerSession(LineReceiver):
|
||||
if message['sourceid'] not in self.blocked:
|
||||
self.transport(message['msg'])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
gsps = GameSpyProfileServer()
|
||||
gsps.start()
|
||||
|
||||
Reference in New Issue
Block a user