|
63 | 63 |
|
64 | 64 | # Roundup modules of use here |
65 | 65 | from roundup.anypy import http_, urllib_ |
66 | | -from roundup.anypy.strings import StringIO |
| 66 | +from roundup.anypy.strings import s2b, StringIO |
67 | 67 | from roundup.cgi import cgitb, client |
68 | 68 | from roundup.cgi.PageTemplates.PageTemplate import PageTemplate |
69 | 69 | import roundup.instance |
@@ -237,20 +237,20 @@ def run_cgi(self): |
237 | 237 | if self.DEBUG_MODE: |
238 | 238 | try: |
239 | 239 | reload(cgitb) |
240 | | - self.wfile.write(cgitb.breaker()) |
241 | | - self.wfile.write(cgitb.html()) |
| 240 | + self.wfile.write(s2b(cgitb.breaker())) |
| 241 | + self.wfile.write(s2b(cgitb.html())) |
242 | 242 | except: |
243 | 243 | s = StringIO() |
244 | 244 | traceback.print_exc(None, s) |
245 | | - self.wfile.write("<pre>") |
246 | | - self.wfile.write(cgi.escape(s.getvalue())) |
247 | | - self.wfile.write("</pre>\n") |
| 245 | + self.wfile.write(b"<pre>") |
| 246 | + self.wfile.write(s2b(cgi.escape(s.getvalue()))) |
| 247 | + self.wfile.write(b"</pre>\n") |
248 | 248 | else: |
249 | 249 | # user feedback |
250 | | - self.wfile.write(cgitb.breaker()) |
| 250 | + self.wfile.write(s2b(cgitb.breaker())) |
251 | 251 | ts = time.ctime() |
252 | | - self.wfile.write('''<p>%s: An error occurred. Please check |
253 | | - the server log for more information.</p>'''%ts) |
| 252 | + self.wfile.write(s2b('''<p>%s: An error occurred. Please check |
| 253 | + the server log for more information.</p>'''%ts)) |
254 | 254 | # out to the logfile |
255 | 255 | print('EXCEPTION AT', ts) |
256 | 256 | traceback.print_exc() |
@@ -281,16 +281,16 @@ def index(self): |
281 | 281 | 'true' : 1, |
282 | 282 | 'false' : 0, |
283 | 283 | } |
284 | | - w(pt.pt_render(extra_context=extra)) |
| 284 | + w(s2b(pt.pt_render(extra_context=extra))) |
285 | 285 | else: |
286 | | - w(_('<html><head><title>Roundup trackers index</title></head>\n' |
287 | | - '<body><h1>Roundup trackers index</h1><ol>\n')) |
| 286 | + w(s2b(_('<html><head><title>Roundup trackers index</title></head>\n' |
| 287 | + '<body><h1>Roundup trackers index</h1><ol>\n'))) |
288 | 288 | keys.sort() |
289 | 289 | for tracker in keys: |
290 | | - w('<li><a href="%(tracker_url)s/index">%(tracker_name)s</a>\n'%{ |
| 290 | + w(s2b('<li><a href="%(tracker_url)s/index">%(tracker_name)s</a>\n'%{ |
291 | 291 | 'tracker_url': urllib_.quote(tracker), |
292 | | - 'tracker_name': cgi.escape(tracker)}) |
293 | | - w('</ol></body></html>') |
| 292 | + 'tracker_name': cgi.escape(tracker)})) |
| 293 | + w(b'</ol></body></html>') |
294 | 294 |
|
295 | 295 | def inner_run_cgi(self): |
296 | 296 | ''' This is the inner part of the CGI handling |
@@ -359,7 +359,7 @@ def inner_run_cgi(self): |
359 | 359 | url += '?' + query |
360 | 360 | self.send_header('Location', url) |
361 | 361 | self.end_headers() |
362 | | - self.wfile.write('Moved Permanently') |
| 362 | + self.wfile.write(b'Moved Permanently') |
363 | 363 | return |
364 | 364 |
|
365 | 365 | # figure out what the rest of the path is |
|
0 commit comments