##// END OF EJS Templates
httppeer: assign Vary request header last...
Gregory Szorc -
r30564:07bcd1bf default
parent child Browse files
Show More
@@ -111,6 +111,7 b' class httppeer(wireproto.wirepeer):'
111 self.ui.debug("sending %s command\n" % cmd)
111 self.ui.debug("sending %s command\n" % cmd)
112 q = [('cmd', cmd)]
112 q = [('cmd', cmd)]
113 headersize = 0
113 headersize = 0
114 varyheaders = []
114 # Important: don't use self.capable() here or else you end up
115 # Important: don't use self.capable() here or else you end up
115 # with infinite recursion when trying to look up capabilities
116 # with infinite recursion when trying to look up capabilities
116 # for the first time.
117 # for the first time.
@@ -137,13 +138,11 b' class httppeer(wireproto.wirepeer):'
137 headerfmt = 'X-HgArg-%s'
138 headerfmt = 'X-HgArg-%s'
138 contentlen = headersize - len(headerfmt % '000' + ': \r\n')
139 contentlen = headersize - len(headerfmt % '000' + ': \r\n')
139 headernum = 0
140 headernum = 0
140 varyheaders = []
141 for i in xrange(0, len(encargs), contentlen):
141 for i in xrange(0, len(encargs), contentlen):
142 headernum += 1
142 headernum += 1
143 header = headerfmt % str(headernum)
143 header = headerfmt % str(headernum)
144 headers[header] = encargs[i:i + contentlen]
144 headers[header] = encargs[i:i + contentlen]
145 varyheaders.append(header)
145 varyheaders.append(header)
146 headers['Vary'] = ','.join(varyheaders)
147 else:
146 else:
148 q += sorted(args.items())
147 q += sorted(args.items())
149 qs = '?%s' % urlreq.urlencode(q)
148 qs = '?%s' % urlreq.urlencode(q)
@@ -158,7 +157,10 b' class httppeer(wireproto.wirepeer):'
158 headers['X-HgHttp2'] = '1'
157 headers['X-HgHttp2'] = '1'
159 if data is not None and 'Content-Type' not in headers:
158 if data is not None and 'Content-Type' not in headers:
160 headers['Content-Type'] = 'application/mercurial-0.1'
159 headers['Content-Type'] = 'application/mercurial-0.1'
160
161 headers['Vary'] = ','.join(varyheaders)
161 req = self.requestbuilder(cu, data, headers)
162 req = self.requestbuilder(cu, data, headers)
163
162 if data is not None:
164 if data is not None:
163 self.ui.debug("sending %s bytes\n" % size)
165 self.ui.debug("sending %s bytes\n" % size)
164 req.add_unredirected_header('Content-Length', '%d' % size)
166 req.add_unredirected_header('Content-Length', '%d' % size)
General Comments 0
You need to be logged in to leave comments. Login now