reverting some test but session.__hash needs work
This commit is contained in:
@@ -1 +1 @@
|
||||
Version 2.1.1 (2012-10-15 20:43:47) dev
|
||||
Version 2.1.1 (2012-10-15 21:49:38) dev
|
||||
|
||||
+5
-13
@@ -608,8 +608,7 @@ class Session(Storage):
|
||||
rcookies = response.cookies
|
||||
rcookies[response.session_id_name] = response.session_id
|
||||
rcookies[response.session_id_name]['path'] = '/'
|
||||
pickle = cPickle.dumps(self)
|
||||
self.__hash = hashlib.md5(pickle).digest()
|
||||
self.__hash = hashlib.md5(str(self)).digest()
|
||||
if self.flash:
|
||||
(response.flash, self.flash) = (self.flash, None)
|
||||
|
||||
@@ -654,20 +653,16 @@ class Session(Storage):
|
||||
|
||||
# don't save if no change to session
|
||||
__hash = self.__hash
|
||||
pickle = None
|
||||
if __hash is not None:
|
||||
del self.__hash
|
||||
pickle = cPickle.dumps(self)
|
||||
if __hash == hashlib.md5(pickle).digest():
|
||||
if __hash == hashlib.md5(str(self)).digest():
|
||||
return
|
||||
else:
|
||||
pickle = cPickle.dumps(self)
|
||||
|
||||
(record_id_name, table, record_id, unique_key) = \
|
||||
response._dbtable_and_field
|
||||
dd = dict(locked=False, client_ip=request.client.replace(':','.'),
|
||||
modified_datetime=request.now,
|
||||
session_data=pickle,
|
||||
session_data=cPickle.dumps(dict(self)),
|
||||
unique_key=unique_key)
|
||||
if record_id:
|
||||
table._db(table.id == record_id).update(**dd)
|
||||
@@ -685,11 +680,9 @@ class Session(Storage):
|
||||
|
||||
# don't save if no change to session
|
||||
__hash = self.__hash
|
||||
pickle = None
|
||||
if __hash is not None:
|
||||
del self.__hash
|
||||
pickle = cPickle.dumps(self)
|
||||
if __hash == hashlib.md5(pickle).digest():
|
||||
if __hash == hashlib.md5(str(self)).digest():
|
||||
self._close(response)
|
||||
return
|
||||
|
||||
@@ -707,8 +700,7 @@ class Session(Storage):
|
||||
response.session_locked = True
|
||||
|
||||
if response.session_file:
|
||||
if not pickle: pickle = cPickle.dumps(self)
|
||||
response.session_file.write(pickle)
|
||||
cPickle.dump(dict(self), response.session_file)
|
||||
response.session_file.truncate()
|
||||
self._close(response)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user