equal
deleted
inserted
replaced
251 raise RepoError(_("There is no Mercurial repository here" |
251 raise RepoError(_("There is no Mercurial repository here" |
252 " (.hg not found)")) |
252 " (.hg not found)")) |
253 return hgwebobj |
253 return hgwebobj |
254 self.application = make_handler() |
254 self.application = make_handler() |
255 |
255 |
256 addr = address |
|
257 if addr in ('', '::'): |
|
258 addr = socket.gethostname() |
|
259 |
|
260 self.addr, self.port = addr, port |
|
261 self.prefix = prefix |
|
262 |
|
263 if ssl_cert: |
256 if ssl_cert: |
264 try: |
257 try: |
265 from OpenSSL import SSL |
258 from OpenSSL import SSL |
266 ctx = SSL.Context(SSL.SSLv23_METHOD) |
259 ctx = SSL.Context(SSL.SSLv23_METHOD) |
267 except ImportError: |
260 except ImportError: |
271 sock = socket.socket(self.address_family, self.socket_type) |
264 sock = socket.socket(self.address_family, self.socket_type) |
272 self.socket = SSL.Connection(ctx, sock) |
265 self.socket = SSL.Connection(ctx, sock) |
273 self.server_bind() |
266 self.server_bind() |
274 self.server_activate() |
267 self.server_activate() |
275 |
268 |
|
269 self.addr, self.port = self.socket.getsockname()[0:2] |
|
270 self.prefix = prefix |
|
271 |
|
272 self.fqaddr = socket.getfqdn(address) |
|
273 try: |
|
274 socket.getaddrbyhost(self.fqaddr) |
|
275 except: |
|
276 fqaddr = address |
|
277 |
276 class IPv6HTTPServer(MercurialHTTPServer): |
278 class IPv6HTTPServer(MercurialHTTPServer): |
277 address_family = getattr(socket, 'AF_INET6', None) |
279 address_family = getattr(socket, 'AF_INET6', None) |
278 |
280 |
279 def __init__(self, *args, **kwargs): |
281 def __init__(self, *args, **kwargs): |
280 if self.address_family is None: |
282 if self.address_family is None: |
290 if use_ipv6: |
292 if use_ipv6: |
291 return IPv6HTTPServer((address, port), handler) |
293 return IPv6HTTPServer((address, port), handler) |
292 else: |
294 else: |
293 return MercurialHTTPServer((address, port), handler) |
295 return MercurialHTTPServer((address, port), handler) |
294 except socket.error, inst: |
296 except socket.error, inst: |
295 raise util.Abort(_('cannot start server: %s') % inst.args[1]) |
297 raise util.Abort(_("cannot start server at '%s:%d': %s") |
|
298 % (address, port, inst.args[1])) |