Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb/server.py @ 3628:dc3504af7722
hgweb: internalize some socket details
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 13 Nov 2006 13:26:57 -0600 |
parents | 3207e30bf468 |
children | eb0b4a2d70a9 |
comparison
equal
deleted
inserted
replaced
3627:44e75d9fa654 | 3628: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]) |