From 3a1ba53a4b86f0da79be3da78b63509fce401c7f Mon Sep 17 00:00:00 2001 From: mdipierro Date: Mon, 15 Oct 2012 21:49:43 -0500 Subject: [PATCH] reverting some test but session.__hash needs work --- VERSION | 2 +- gluon/globals.py | 18 +++++------------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/VERSION b/VERSION index 78f53867..ef4d7a46 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.1.1 (2012-10-15 20:43:47) dev +Version 2.1.1 (2012-10-15 21:49:38) dev diff --git a/gluon/globals.py b/gluon/globals.py index 79fa3bd7..a9fcd07b 100644 --- a/gluon/globals.py +++ b/gluon/globals.py @@ -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)