Mercurial > kallithea
changeset 1834:d0e477b5dc95
backported fixes for issue #318
- session cleanup for mercurial and git middlewares
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 06 Jan 2012 06:09:12 +0200 |
parents | 6f8f1ab20b7d |
children | ea011e05fb0a |
files | rhodecode/lib/middleware/simplegit.py rhodecode/lib/middleware/simplehg.py |
diffstat | 2 files changed, 22 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/lib/middleware/simplegit.py Wed Jan 04 04:41:50 2012 +0200 +++ b/rhodecode/lib/middleware/simplegit.py Fri Jan 06 06:09:12 2012 +0200 @@ -27,6 +27,7 @@ import os import logging import traceback +import time from dulwich import server as dulserver @@ -72,6 +73,7 @@ from rhodecode.lib import safe_str from rhodecode.lib.auth import authfunc, HasPermissionAnyMiddleware from rhodecode.lib.utils import invalidate_cache, is_valid_repo +from rhodecode.model import meta from rhodecode.model.db import User from webob.exc import HTTPNotFound, HTTPForbidden, HTTPInternalServerError @@ -102,6 +104,15 @@ self.authenticate = AuthBasicAuthenticator('', authfunc) def __call__(self, environ, start_response): + start = time.time() + try: + return self._handle_request(environ, start_response) + finally: + log = logging.getLogger(self.__class__.__name__) + log.debug('Request time: %.3fs' % (time.time() - start)) + meta.Session.remove() + + def _handle_request(self, environ, start_response): if not is_git(environ): return self.application(environ, start_response)
--- a/rhodecode/lib/middleware/simplehg.py Wed Jan 04 04:41:50 2012 +0200 +++ b/rhodecode/lib/middleware/simplehg.py Fri Jan 06 06:09:12 2012 +0200 @@ -27,6 +27,7 @@ import os import logging import traceback +import time from mercurial.error import RepoError from mercurial.hgweb import hgweb_mod @@ -38,6 +39,7 @@ from rhodecode.lib.auth import authfunc, HasPermissionAnyMiddleware from rhodecode.lib.utils import make_ui, invalidate_cache, \ is_valid_repo, ui_sections +from rhodecode.model import meta from rhodecode.model.db import User from webob.exc import HTTPNotFound, HTTPForbidden, HTTPInternalServerError @@ -67,6 +69,15 @@ self.ipaddr = '0.0.0.0' def __call__(self, environ, start_response): + start = time.time() + try: + return self._handle_request(environ, start_response) + finally: + log = logging.getLogger(self.__class__.__name__) + log.debug('Request time: %.3fs' % (time.time() - start)) + meta.Session.remove() + + def _handle_request(self, environ, start_response): if not is_mercurial(environ): return self.application(environ, start_response)