2020from __future__ import print_function
2121from roundup import version_check
2222from roundup .i18n import _
23+ from roundup .anypy .strings import s2b , StringIO
2324import sys , time
2425
2526#
@@ -72,7 +73,6 @@ LOG = DevNull()
7273#
7374try :
7475 import traceback , cgi
75- from roundup .anypy .strings import StringIO
7676 from roundup .cgi import cgitb
7777except :
7878 print ("Content-Type: text/plain\n " )
@@ -125,11 +125,11 @@ class RequestWrapper:
125125 def write (self , data ):
126126 self .wfile .write (data )
127127 def send_response (self , code ):
128- self .write ('Status: %s\r \n ' % code )
128+ self .write (s2b ( 'Status: %s\r \n ' % code ) )
129129 def send_header (self , keyword , value ):
130- self .write ("%s: %s\r \n " % (keyword , value ))
130+ self .write (s2b ( "%s: %s\r \n " % (keyword , value ) ))
131131 def end_headers (self ):
132- self .write ("\r \n " )
132+ self .write (b "\r \n " )
133133 def start_response (self , headers , response ):
134134 self .send_response (response )
135135 for key , value in headers :
@@ -161,7 +161,7 @@ def main(out, err):
161161 os .environ .get ('REQUEST_URI' , '' ))
162162 request .send_header ('Location' , absolute_url )
163163 request .end_headers ()
164- out .write ('Moved Permanently' )
164+ out .write (b 'Moved Permanently' )
165165 else :
166166 tracker_home = TRACKER_HOMES [tracker ]
167167 tracker = roundup .instance .open (tracker_home )
@@ -176,28 +176,28 @@ def main(out, err):
176176 request .send_response (403 )
177177 request .send_header ('Content-Type' , 'text/html' )
178178 request .end_headers ()
179- out .write ('Unauthorised' )
179+ out .write (b 'Unauthorised' )
180180 except roundup .cgi .client .NotFound :
181181 request .send_response (404 )
182182 request .send_header ('Content-Type' , 'text/html' )
183183 request .end_headers ()
184- out .write ('Not found: %s' % client .path )
184+ out .write (s2b ( 'Not found: %s' % client .path ) )
185185
186186 else :
187187 from roundup .anypy import urllib_
188188 request .send_response (200 )
189189 request .send_header ('Content-Type' , 'text/html' )
190190 request .end_headers ()
191191 w = request .write
192- w (_ ('<html><head><title>Roundup trackers index</title></head>\n ' ))
193- w (_ ('<body><h1>Roundup trackers index</h1><ol>\n ' ))
192+ w (s2b ( _ ('<html><head><title>Roundup trackers index</title></head>\n ' ) ))
193+ w (s2b ( _ ('<body><h1>Roundup trackers index</h1><ol>\n ' ) ))
194194 homes = sorted (TRACKER_HOMES .keys ())
195195 for tracker in homes :
196- w (_ ('<li><a href="%(tracker_url)s/index">%(tracker_name)s</a>\n ' )% {
196+ w (s2b ( _ ('<li><a href="%(tracker_url)s/index">%(tracker_name)s</a>\n ' )% {
197197 'tracker_url' : os .environ ['SCRIPT_NAME' ]+ '/' +
198198 urllib_ .quote (tracker ),
199- 'tracker_name' : cgi .escape (tracker )})
200- w (_ ('</ol></body></html>' ))
199+ 'tracker_name' : cgi .escape (tracker )}))
200+ w (s2b ( _ ('</ol></body></html>' ) ))
201201
202202#
203203# Now do the actual CGI handling
@@ -211,7 +211,11 @@ try:
211211 msvcrt .setmode (sys .stdout .fileno (), os .O_BINARY )
212212 checkconfig ()
213213 sys .stdout = sys .stderr = LOG
214- main (out , err )
214+ if sys .version_info [0 ] > 2 :
215+ out_buf = out .buffer
216+ else :
217+ out_buf = out
218+ main (out_buf , err )
215219except SystemExit :
216220 pass
217221except :
0 commit comments