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')]): |