Ticket #276: httpserver.py.patch

File httpserver.py.patch, 2.0 KB (added by n.vandamme, 2 years ago)

diff for ipv6 support

  • paste/httpserver.py

    old new  
    183183        if endslash and path != '/': 
    184184            # Put the slash back... 
    185185            path += '/' 
    186         (server_name, server_port) = self.server.server_address 
    187  
     186        server_name = self.server.server_address[0] 
     187        server_port = self.server.server_address[1] 
    188188        rfile = self.rfile 
    189189        if 'HTTP/1.1' == self.protocol_version and \ 
    190190                '100-continue' == self.headers.get('Expect','').lower(): 
     
    325325        def __init__(self, server_address, RequestHandlerClass, 
    326326                     ssl_context=None, request_queue_size=None): 
    327327            assert not ssl_context, "pyOpenSSL not installed" 
     328            if ':' in server_address[0]: 
     329                self.address_family = socket.AF_INET6 
    328330            HTTPServer.__init__(self, server_address, RequestHandlerClass) 
    329331            if request_queue_size: 
    330332                self.socket.listen(request_queue_size) 
     
    357359            # This overrides the implementation of __init__ in python's 
    358360            # SocketServer.TCPServer (which BaseHTTPServer.HTTPServer 
    359361            # does not override, thankfully). 
     362            if ':' in server_address[0]: 
     363                self.address_family = socket.AF_INET6 
    360364            HTTPServer.__init__(self, server_address, RequestHandlerClass) 
    361365            self.socket = socket.socket(self.address_family, 
    362366                                        self.socket_type) 
     
    13001298 
    13011299    if converters.asbool(start_loop): 
    13021300        protocol = is_ssl and 'https' or 'http' 
    1303         host, port = server.server_address 
     1301        host = server.server_address[0] 
     1302        port = server.server_address[1] 
     1303        if ':' in host: 
     1304            host = '[%s]' % host 
    13041305        if host == '0.0.0.0': 
    13051306            print 'serving on 0.0.0.0:%s view at %s://127.0.0.1:%s' % \ 
    13061307                (port, protocol, port)