Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 1971

Show
Ignore:
Timestamp:
05/25/08 17:02:41
Author:
fumanchu
Message:

Test and fix for #810 (Add 408 responses).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/test/test_conn.py

    r1968 r1971  
    224224            self.persistent = True 
    225225            conn = self.HTTP_CONN 
    226             # Make the socket nonblocking so it can timeout 
    227 ##            conn.connect() 
    228 ##            conn.sock.settimeout(0.1) 
    229226            conn.putrequest("GET", "/", skip_host=True) 
    230227            conn.putheader("Host", self.HOST) 
     
    269266             
    270267            # Make another request on a new socket, which should work 
     268            self.persistent = True 
     269            conn = self.HTTP_CONN 
     270            conn.putrequest("GET", "/", skip_host=True) 
     271            conn.putheader("Host", self.HOST) 
     272            conn.endheaders() 
     273            response = conn.response_class(conn.sock, method="GET") 
     274            response.begin() 
     275            self.assertEqual(response.status, 200) 
     276            self.body = response.read() 
     277            self.assertBody(pov) 
     278             
     279            # Make another request on the same socket, 
     280            # but timeout on the headers 
     281            conn.send('GET /hello HTTP/1.1') 
     282            # Wait for our socket timeout 
     283            time.sleep(timeout * 2) 
     284            response = conn.response_class(conn.sock, method="GET") 
     285            response.begin() 
     286            self.assertEqual(response.status, 408) 
     287            conn.close() 
     288             
     289            # Retry the request on a new connection, which should work 
    271290            self.persistent = True 
    272291            conn = self.HTTP_CONN 
  • trunk/cherrypy/wsgiserver/__init__.py

    r1968 r1971  
    979979        except socket.error, e: 
    980980            errnum = e.args[0] 
    981             if errnum not in socket_errors_to_ignore: 
     981            if errnum == 'timed out': 
     982                if req: 
     983                    req.simple_response("408 Request Timeout") 
     984            elif errnum not in socket_errors_to_ignore: 
    982985                if req: 
    983986                    req.simple_response("500 Internal Server Error", 

Hosted by WebFaction

Log in as guest/cpguest to create tickets