Changeset 964
- Timestamp:
- 12/29/07 14:07:43 (9 months ago)
- Files:
-
- cherokee-pyscgi/ChangeLog (modified) (1 diff)
- cherokee-pyscgi/pyscgi/pyscgi.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
cherokee-pyscgi/ChangeLog
r928 r964 1 2007-12-29 Alvaro Lopez Ortega <alvaro@alobbs.com> 2 3 * pyscgi/pyscgi.py: Fixed communication issue between the SCGI 4 application and the web server. The information follow could 5 fail because EAGAIN errors. It is fixed now. 6 1 7 2007-10-04 Alvaro Lopez Ortega <alvaro@alobbs.com> 2 8 cherokee-pyscgi/pyscgi/pyscgi.py
r876 r964 38 38 import SocketServer 39 39 import traceback 40 import errno 40 41 41 __version__ = '1. 1'42 __version__ = '1.2' 42 43 __author__ = 'Alvaro Lopez Ortega' 43 44 … … 49 50 SocketServer.StreamRequestHandler.__init__ (self, request, client_address, server) 50 51 52 def __safe_read (self, lenght): 53 while True: 54 try: 55 return self.rfile.read(lenght) 56 except OSError, e: 57 if e.errno == errno.EAGAIN: 58 continue 59 except IOError, e: 60 if e.errno == errno.EAGAIN: 61 continue 62 raise 63 51 64 def __read_netstring_size (self): 52 65 size = "" 53 66 while 1: 54 c = self. rfile.read(1)67 c = self.__safe_read(1) 55 68 if c == ':': 56 69 break … … 64 77 size = self.__read_netstring_size() 65 78 while size > 0: 66 s = self. rfile.read(size)79 s = self.__safe_read(size) 67 80 if not s: 68 81 raise IOError, 'Malformed netstring' 69 82 data += s 70 83 size -= len(s) 71 if self. rfile.read(1) != ',':84 if self.__safe_read(1) != ',': 72 85 raise IOError, 'Missing netstring terminator' 73 86 return data … … 86 99 return 87 100 length = int(self.env['CONTENT_LENGTH']) 88 self.post = self. rfile.read(length)101 self.post = self.__safe_read(length) 89 102 90 103 def handle (self):