changeset 2579:c344a7fca2a7 beta

reset response charset to fix Egit/JGit issues
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 10 Jul 2012 22:42:42 +0200
parents d24c70ec9312
children 099bd065f47b
files rhodecode/lib/middleware/pygrack.py
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/middleware/pygrack.py	Mon Jul 09 03:38:18 2012 +0200
+++ b/rhodecode/lib/middleware/pygrack.py	Tue Jul 10 22:42:42 2012 +0200
@@ -79,14 +79,14 @@
         # blows up if you sprinkle "flush" (0000) as "0001\n".
         # It reads binary, per number of bytes specified.
         # if you do add '\n' as part of data, count it.
-        smart_server_advert = '# service=%s' % git_command
+        server_advert = '# service=%s' % git_command
+        packet_len = str(hex(len(server_advert) + 4)[2:].rjust(4, '0')).lower()
         try:
             out = subprocessio.SubprocessIOChunker(
                 r'git %s --stateless-rpc --advertise-refs "%s"' % (
                                 git_command[4:], self.content_path),
                 starting_values=[
-                    str(hex(len(smart_server_advert) + 4)[2:]
-                        .rjust(4, '0') + smart_server_advert + '0000')
+                    packet_len + server_advert + '0000'
                 ]
             )
         except EnvironmentError, e:
@@ -94,6 +94,7 @@
             raise exc.HTTPExpectationFailed()
         resp = Response()
         resp.content_type = 'application/x-%s-advertisement' % str(git_command)
+        resp.charset = None
         resp.app_iter = out
         return resp