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

Changeset 605

Show
Ignore:
Timestamp:
09/04/05 16:06:05
Author:
mikerobi
Message:

httperrors branch merged into the trunk, the configuration paramater "showTracebacks" is now "server.showTracebacks"

Files:

Legend:

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

    r549 r605  
    185185        if body is not _missing: 
    186186            cherrypy.response.body = body 
     187         
     188        self.message = body 
     189     
     190    def getArgs(self): 
     191        return (self.status, self.message) 
    187192 
    188193 
  • trunk/cherrypy/_cphttptools.py

    r583 r605  
    429429        # Bypass them all. 
    430430        defaultOn = (cherrypy.config.get('server.environment') == 'development') 
    431         if cherrypy.config.get('showTracebacks', defaultOn): 
     431        if cherrypy.config.get('server.showTracebacks', defaultOn): 
    432432            body = dbltrace % (_cputil.formatExc(exc), _cputil.formatExc()) 
    433433        else: 
     
    449449    """ 
    450450     
    451     body = "Unrecoverable error in the server." 
    452     if extrabody is not None: 
    453         body += "\n" + extrabody 
    454     return ("500 Internal Server Error", 
     451    try: 
     452        isProduction = cherrypy.config.get('server.environment') == 'production' 
     453        httpErrors = cherrypy.config.get('server.httpErrors') 
     454         
     455        if isProduction and httpErrors: 
     456            if not extrabody: 
     457                extrabody = '' 
     458            status, _body = httperrors.getErrorPage(500, extrabody) 
     459            headers = [('Content-Length', str(len(_body))), ('Content-Type', 'text/html')] 
     460            return (status, headers, _body) 
     461        else: 
     462            # raise a dummy exception to force a plain error message 
     463            raise Exception() 
     464    except: 
     465        body = "Unrecoverable error in the server." 
     466        if extrabody is not None: 
     467            body += "\n" + extrabody 
     468         
     469        return ("500 Internal Server Error", 
    455470            [('Content-Type', 'text/plain'), 
    456471             ('Content-Length', str(len(body)))], 
  • trunk/cherrypy/_cputil.py

    r573 r605  
    151151        f.close() 
    152152 
     153from cherrypy.lib import httperrors 
     154 
     155def _cpOnHTTPError(): 
     156    """ Default _cpOnHTTPError method """ 
     157    status, customMessage = sys.exc_info()[1].getArgs() 
     158     
     159    page = httperrors.getErrorPage(status, customMessage = customMessage) 
     160    cherrypy.response.status, cherrypy.response.body = page 
     161     
     162    if cherrypy.response.headerMap.has_key('Content-Encoding'): 
     163        del cherrypy.response.headerMap['Content-Encoding'] 
    153164 
    154165def formatExc(exc=None): 
     
    160171def _cpOnError(): 
    161172    """ Default _cpOnError method """ 
    162     defaultOn = (cherrypy.config.get('server.environment') == 'development') 
    163     if cherrypy.config.get("showTracebacks", defaultOn): 
     173    developmentMode  = cherrypy.config.get('server.environment') == 'development' 
     174    httpErrors     = cherrypy.config.get('server.httpErrors') 
     175    showTracebacks = cherrypy.config.get('server.showTracebacks') 
     176     
     177    response = cherrypy.response 
     178     
     179    if not developmentMode and httpErrors: 
     180        if response.status == 404: 
     181            response.status, response.body = httperrors.getErrorPage(404) 
     182        else: 
     183            response.status, response.body = httperrors.getErrorPage(500) 
     184    elif developmentMode or showTracebacks: 
    164185        cherrypy.response.body = [formatExc()] 
     186        cherrypy.response.headerMap['Content-Type'] = 'text/plain' 
    165187    else: 
    166         cherrypy.response.body = "Unrecoverable error in the application." 
    167     cherrypy.response.headerMap['Content-Type'] = 'text/plain' 
     188        if cherrypy.config.get('showTraceBacks', False): 
     189            cherrypy 
     190        cherrypy.response.body = "Unrecoverable error in the server" 
     191        cherrypy.response.headerMap['Content-Type'] = 'text/plain' 
     192     
    168193    if cherrypy.response.headerMap.has_key('Content-Encoding'): 
    169194        del cherrypy.response.headerMap['Content-Encoding'] 
    170  
    171195 
    172196_cpFilterList = [] 
  • trunk/cherrypy/_cpwsgi.py

    r583 r605  
    111111        cherrypy.log(tb) 
    112112        defaultOn = (cherrypy.config.get('server.environment') == 'development') 
    113         if not cherrypy.config.get("showTracebacks", defaultOn): 
     113        if not cherrypy.config.get("server.showTracebacks", defaultOn): 
    114114            tb = "" 
    115115        s, h, b = _cphttptools.bareError(tb) 
  • trunk/cherrypy/config.py

    r585 r605  
    4949     
    5050    'server.environment': 'development', 
     51    'server.httpErrors' : True, 
    5152    'server.protocolVersion': 'HTTP/1.0', 
    5253    'server.logToScreen': True, 
  • trunk/cherrypy/test/test.py

    r581 r605  
    251251                    'server.logToScreen': False, 
    252252                    'server.environment': "production", 
    253                     'showTracebacks': True, 
     253                    'server.showTracebacks': True, 
    254254                    } 
    255255        elif isinstance(conf, basestring): 
  • trunk/cherrypy/test/test_core.py

    r580 r605  
    248248cherrypy.config.update({ 
    249249    'global': {'server.logToScreen': False, 
     250               'server.httpErrors' : False, 
    250251               'server.environment': 'production', 
    251                'showTracebacks': True, 
     252               'server.showTracebacks': True, 
    252253               'server.protocolVersion': "HTTP/1.1", 
    253254               }, 
  • trunk/cherrypy/test/test_gzip_filter.py

    r555 r605  
    4646        'server.logToScreen': False, 
    4747        'server.environment': 'production', 
    48         'showTracebacks': True, 
     48        'server.httpErrors': False, 
     49        'server.showTracebacks': True, 
    4950        'gzipFilter.on': True, 
    5051}) 
  • trunk/cherrypy/tutorial/tutorial.conf

    r420 r605  
    33server.threadPool = 10 
    44server.environment = "production" 
     5# server.showTracebacks = True 
    56# server.logToScreen = False 

Hosted by WebFaction

Log in as guest/cpguest to create tickets