mercurial/hgweb/server.py
changeset 3631 dc3504af7722
parent 3262 3207e30bf468
child 3673 eb0b4a2d70a9
equal deleted inserted replaced
3630:44e75d9fa654 3631:dc3504af7722
   198             self.webdirmaker = hgwebdir
   198             self.webdirmaker = hgwebdir
   199             self.repoviewmaker = hgweb
   199             self.repoviewmaker = hgweb
   200             self.reqmaker = wsgiapplication(self.make_handler)
   200             self.reqmaker = wsgiapplication(self.make_handler)
   201             self.daemon_threads = True
   201             self.daemon_threads = True
   202 
   202 
       
   203             addr, port = self.socket.getsockname()
       
   204             if addr == '0.0.0.0':
       
   205                 addr = socket.gethostname()
       
   206             else:
       
   207                 try:
       
   208                     addr = socket.gethostbyaddr(addr)[0]
       
   209                 except socket.error:
       
   210                     pass
       
   211             self.addr, self.port = addr, port
       
   212 
   203         def make_handler(self):
   213         def make_handler(self):
   204             if self.webdir_conf:
   214             if self.webdir_conf:
   205                 hgwebobj = self.webdirmaker(self.webdir_conf)
   215                 hgwebobj = self.webdirmaker(self.webdir_conf)
   206             elif self.repo is not None:
   216             elif self.repo is not None:
   207                 hgwebobj = self.repoviewmaker(repo.__class__(repo.ui,
   217                 hgwebobj = self.repoviewmaker(repo.__class__(repo.ui,
   217         def __init__(self, *args, **kwargs):
   227         def __init__(self, *args, **kwargs):
   218             if self.address_family is None:
   228             if self.address_family is None:
   219                 raise hg.RepoError(_('IPv6 not available on this system'))
   229                 raise hg.RepoError(_('IPv6 not available on this system'))
   220             super(IPv6HTTPServer, self).__init__(*args, **kwargs)
   230             super(IPv6HTTPServer, self).__init__(*args, **kwargs)
   221 
   231 
   222     if use_ipv6:
   232     try:
   223         return IPv6HTTPServer((address, port), _hgwebhandler)
   233         if use_ipv6:
   224     else:
   234             return IPv6HTTPServer((address, port), _hgwebhandler)
   225         return MercurialHTTPServer((address, port), _hgwebhandler)
   235         else:
       
   236             return MercurialHTTPServer((address, port), _hgwebhandler)
       
   237     except socket.error, inst:
       
   238         raise util.Abort(_('cannot start server: %s') % inst.args[1])