Changeset 18:6fb655114e1e

Show
Ignore:
Timestamp:
06/12/05 23:10:01 (3 years ago)
Author:
Allan Saddi <allan@saddi.com>
branch:
default
convert_revision:
svn:46762da8-4eb7-0310-94e9-d918b60927c8/flup/trunk@1796
Message:

Cleanly close connection socket to avoid sending a TCP RST to
the web server. (fcgi_base)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ChangeLog

    r17 r18  
     12005-06-12  Allan Saddi  <asaddi@europa.saddi.net> 
     2 
     3        * Cleanly close connection socket to avoid sending a TCP RST to 
     4          the web server. (fcgi_base) Fix suggested by Dima Barsky. 
     5 
    162005-05-31  Allan Saddi  <asaddi@ganymede.saddi.net> 
    27 
  • flup/server/fcgi_base.py

    r14 r18  
    620620    def _cleanupSocket(self): 
    621621        """Close the Connection's socket.""" 
     622        try: 
     623            self._sock.shutdown(socket.SHUT_WR) 
     624        except: 
     625            return 
     626        try: 
     627            while True: 
     628                r, w, e = select.select([self._sock], [], []) 
     629                if not r or not self._sock.recv(1024): 
     630                    break 
     631        except: 
     632            pass 
    622633        self._sock.close() 
    623634         
     
    702713 
    703714        if not (req.flags & FCGI_KEEP_CONN) and not self._requests: 
    704             self._sock.close() 
     715            self._cleanupSocket() 
    705716            self._keepGoing = False 
    706717