[Python-checkins] CVS: python/dist/src/Lib CGIHTTPServer.py,1.17,1.17.4.1

Anthony Baxter anthonybaxter@users.sourceforge.net
2001年12月04日 20:39:43 -0800


Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv5900
Modified Files:
 Tag: release21-maint
	CGIHTTPServer.py 
Log Message:
backport 1.18, 1.19, 1.20:
--
Apply two small changes to the Windows code, according to SF bug
#427345. These are supposed to support binary data and avoid
buffering problems on Windows.
--
SF patch #467430.
- replace some log_error() calls with log_message()
- flush self.rfile before forking too (hope this works on Windows)
--
Fix two typos, one noted by Noah Spurrier in SF bug #475166, the
second noted after a second's thought about what the next line should
do. :-(
Index: CGIHTTPServer.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/CGIHTTPServer.py,v
retrieving revision 1.17
retrieving revision 1.17.4.1
diff -C2 -d -r1.17 -r1.17.4.1
*** CGIHTTPServer.py	2001年02月09日 12:10:26	1.17
--- CGIHTTPServer.py	2001年12月05日 04:39:41	1.17.4.1
***************
*** 193,196 ****
--- 193,197 ----
 args.append(decoded_query)
 nobody = nobody_uid()
+ self.rfile.flush() # Always flush before forking
 self.wfile.flush() # Always flush before forking
 pid = os.fork()
***************
*** 222,236 ****
 interp = sys.executable
 if interp.lower().endswith("w.exe"):
! # On Windows, use python.exe, not python.exe
! interp = interp[:-5] = interp[-4:]
! cmdline = "%s %s" % (interp, cmdline)
 if '=' not in query and '"' not in query:
 cmdline = '%s "%s"' % (cmdline, query)
! self.log_error("command: %s", cmdline)
 try:
 nbytes = int(length)
 except:
 nbytes = 0
! fi, fo = os.popen2(cmdline)
 if self.command.lower() == "post" and nbytes > 0:
 data = self.rfile.read(nbytes)
--- 223,237 ----
 interp = sys.executable
 if interp.lower().endswith("w.exe"):
! # On Windows, use python.exe, not pythonw.exe
! interp = interp[:-5] + interp[-4:]
! cmdline = "%s -u %s" % (interp, cmdline)
 if '=' not in query and '"' not in query:
 cmdline = '%s "%s"' % (cmdline, query)
! self.log_message("command: %s", cmdline)
 try:
 nbytes = int(length)
 except:
 nbytes = 0
! fi, fo = os.popen2(cmdline, 'b')
 if self.command.lower() == "post" and nbytes > 0:
 data = self.rfile.read(nbytes)
***************
*** 242,246 ****
 self.log_error("CGI script exit status %#x", sts)
 else:
! self.log_error("CGI script exited OK")
 
 else:
--- 243,247 ----
 self.log_error("CGI script exit status %#x", sts)
 else:
! self.log_message("CGI script exited OK")
 
 else:
***************
*** 267,271 ****
 self.log_error("CGI script exit status %s", str(sts))
 else:
! self.log_error("CGI script exited OK")
 
 
--- 268,272 ----
 self.log_error("CGI script exit status %s", str(sts))
 else:
! self.log_message("CGI script exited OK")
 
 

AltStyle によって変換されたページ (->オリジナル) /