diff --git a/VERSION b/VERSION index 78f538676..ef4d7a46a 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 79fa3bd75..a9fcd07bc 100644 --- a/gluon/globals.py +++ b/gluon/globals.py @@ -608,8 +608,7 @@ def connect( 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 @@ def _try_store_in_db(self, request, response): # 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 @@ def _try_store_on_disk(self, request, response): # 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 @@ def _try_store_on_disk(self, request, response): 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)