Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/hgweb/request.py @ 2514:419c42223bee
Really fix http headers for web UI and issue 254.
This also arranges for static content to allow a keepalive connection.
author | Eric Hopper <hopper@omnifarious.org> |
---|---|
date | Tue, 27 Jun 2006 09:33:12 -0700 |
parents | 7e01da2bc7f3 |
children | b8ccf6386db7 |
comparison
equal
deleted
inserted
replaced
2513:f22e3e8fd457 | 2514:419c42223bee |
---|---|
55 | 55 |
56 def read(self, count=-1): | 56 def read(self, count=-1): |
57 return self.inp.read(count) | 57 return self.inp.read(count) |
58 | 58 |
59 def write(self, *things): | 59 def write(self, *things): |
60 if self.server_write is None: | |
61 if not self.headers: | |
62 self.header() | |
63 self.server_write = self.start_response('200 Script output follows', | |
64 self.headers) | |
65 self.start_response = None | |
66 self.headers = None | |
67 for thing in things: | 60 for thing in things: |
68 if hasattr(thing, "__iter__"): | 61 if hasattr(thing, "__iter__"): |
69 for part in thing: | 62 for part in thing: |
70 self.write(part) | 63 self.write(part) |
71 else: | 64 else: |
65 thing = str(thing) | |
66 if self.server_write is None: | |
67 if not self.headers: | |
68 raise RuntimeError("request.write called before headers sent (%s)." % thing) | |
69 self.server_write = self.start_response('200 Script output follows', | |
70 self.headers) | |
71 self.start_response = None | |
72 self.headers = None | |
72 try: | 73 try: |
73 self.server_write(str(thing)) | 74 self.server_write(thing) |
74 except socket.error, inst: | 75 except socket.error, inst: |
75 if inst[0] != errno.ECONNRESET: | 76 if inst[0] != errno.ECONNRESET: |
76 raise | 77 raise |
77 | 78 |
78 def header(self, headers=[('Content-type','text/html')]): | 79 def header(self, headers=[('Content-type','text/html')]): |