Skip to content
This repository was archived by the owner on Feb 17, 2019. It is now read-only.

Commit f6eaf80

Browse files
committed
allow session resumption
1 parent 505bbb6 commit f6eaf80

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

client.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ def handle_challenge(self, data, addr) -> None:
259259
self.sessions[request_id] = {
260260
'encryptor': encryptor,
261261
'nonce': 0,
262+
'user': self.username
262263
}
263264

264265
self.send_challenge_response(

server.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,19 @@ def handle_client_hello(self, data, addr):
6262
"Client attempting login for unknown user '%s' in request %u", username, request_id)
6363
return
6464

65+
# resume old session, if still available:
66+
if request_id in self.sessions:
67+
session = self.sessions[request_id]
68+
if session['username'] == username:
69+
server_state = dict()
70+
for filename, fileinfo in self.fileinfo.items():
71+
server_state[filename] = fileinfo["filehash"]
72+
73+
# respond with Current_Server_State
74+
self.send_current_server_state(request_id, self.epoch, server_state, addr)
75+
return
76+
77+
6578
salt, vkey, ukey = self.userinfo[username]
6679

6780
logging.debug(
@@ -105,6 +118,7 @@ def handle_challenge_response(self, data, addr):
105118
self.sessions[session_id] = {
106119
'encryptor': encryptor,
107120
'nonce': 1,
121+
'user': username
108122
}
109123

110124
server_state = dict()

0 commit comments

Comments
 (0)