equal
deleted
inserted
replaced
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> |
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> |
4 # |
4 # |
5 # This software may be used and distributed according to the terms of the |
5 # This software may be used and distributed according to the terms of the |
6 # GNU General Public License version 2 or any later version. |
6 # GNU General Public License version 2 or any later version. |
7 |
7 |
8 import cgi, cStringIO, itertools, zlib, sys, urllib |
8 import cgi, cStringIO, zlib, sys, urllib |
9 from mercurial import util, wireproto |
9 from mercurial import util, wireproto |
10 from common import HTTP_OK |
10 from common import HTTP_OK |
11 |
11 |
12 HGTYPE = 'application/mercurial-0.1' |
12 HGTYPE = 'application/mercurial-0.1' |
13 |
13 |
30 data[k] = knownargs[k][0] |
30 data[k] = knownargs[k][0] |
31 return [data[k] for k in keys] |
31 return [data[k] for k in keys] |
32 def _args(self): |
32 def _args(self): |
33 args = self.req.form.copy() |
33 args = self.req.form.copy() |
34 chunks = [] |
34 chunks = [] |
35 for i in itertools.count(1): |
35 i = 1 |
36 h = self.req.env.get('HTTP_X_ARG_' + str(i)) |
36 while 1: |
|
37 h = self.req.env.get('HTTP_X_HGARG_' + str(i)) |
37 if h is None: |
38 if h is None: |
38 break |
39 break |
39 chunks += [h] |
40 chunks += [h] |
|
41 i += 1 |
40 args.update(cgi.parse_qs(''.join(chunks), keep_blank_values=True)) |
42 args.update(cgi.parse_qs(''.join(chunks), keep_blank_values=True)) |
41 return args |
43 return args |
42 def getfile(self, fp): |
44 def getfile(self, fp): |
43 length = int(self.req.env['CONTENT_LENGTH']) |
45 length = int(self.req.env['CONTENT_LENGTH']) |
44 for s in util.filechunkiter(self.req, limit=length): |
46 for s in util.filechunkiter(self.req, limit=length): |