def handler_501(request, response): # Just show logs related ot port 8181 as mention in question logs = filter(lambda log: log.client_port == 8181, ServerRequestLogger.logs()) return ''' <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html> <head> <title>Method Not allowed</title> </head> <body> <h1>Method Not allowed</h1> <p>The requested <b>{request.method}</b> for {request.path} was not allowed on this server.</p> <hr> {log} <hr> <address>Ocean/0.1.1</address> </body> </html> '''.format(request=request, log=get_clients_html(request, response))
def show_clients(request, response): return get_clients_html(request, response, ServerRequestLogger.logs())
from http.http_response import HTTPResponse from http.request_builder import process_http_message from http.routing.router import has_error_handler, error_handler, get_error_handler from http_server.server_requests_logger import ServerRequestLogger __author__ = 'Hossein Zolfi <*****@*****.**>' def handle_user_request(message, *args, **kwargs): request = HTTPRequest() try: process_http_message(request, message, *args, **kwargs) response = handle_http_request(request) except HttpExceptionBase, e: response = handle_http_exception(request, e) ServerRequestLogger.log(request, response) return handle_response(response) def handle_response(response): return handle_http_response(response) def handle_http_response(response): io = StringIO.StringIO() print >>io, 'HTTP/1.1 %d %s' %(response.status, response.code) print >>io, 'Content-Type: %s' %(response.content_type,) print >>io, 'Content-Length: %d' %(response.content_length,) print >>io, 'Server: Ocean/0.1.1' print >>io, '' io.write(response.content)