mercurial/hgweb/server.py
changeset 26587 56b2bcea2529
parent 26202 04af43009c8b
child 26848 d962e955da08
equal deleted inserted replaced
26586:d51c658d3f04 26587:56b2bcea2529
   206     def preparehttpserver(httpserver, ssl_cert):
   206     def preparehttpserver(httpserver, ssl_cert):
   207         try:
   207         try:
   208             import OpenSSL
   208             import OpenSSL
   209             OpenSSL.SSL.Context
   209             OpenSSL.SSL.Context
   210         except ImportError:
   210         except ImportError:
   211             raise util.Abort(_("SSL support is unavailable"))
   211             raise error.Abort(_("SSL support is unavailable"))
   212         ctx = OpenSSL.SSL.Context(OpenSSL.SSL.TLSv1_METHOD)
   212         ctx = OpenSSL.SSL.Context(OpenSSL.SSL.TLSv1_METHOD)
   213         ctx.use_privatekey_file(ssl_cert)
   213         ctx.use_privatekey_file(ssl_cert)
   214         ctx.use_certificate_file(ssl_cert)
   214         ctx.use_certificate_file(ssl_cert)
   215         sock = socket.socket(httpserver.address_family, httpserver.socket_type)
   215         sock = socket.socket(httpserver.address_family, httpserver.socket_type)
   216         httpserver.socket = OpenSSL.SSL.Connection(ctx, sock)
   216         httpserver.socket = OpenSSL.SSL.Connection(ctx, sock)
   247     def preparehttpserver(httpserver, ssl_cert):
   247     def preparehttpserver(httpserver, ssl_cert):
   248         try:
   248         try:
   249             import ssl
   249             import ssl
   250             ssl.wrap_socket
   250             ssl.wrap_socket
   251         except ImportError:
   251         except ImportError:
   252             raise util.Abort(_("SSL support is unavailable"))
   252             raise error.Abort(_("SSL support is unavailable"))
   253         httpserver.socket = ssl.wrap_socket(
   253         httpserver.socket = ssl.wrap_socket(
   254             httpserver.socket, server_side=True,
   254             httpserver.socket, server_side=True,
   255             certfile=ssl_cert, ssl_version=ssl.PROTOCOL_TLSv1)
   255             certfile=ssl_cert, ssl_version=ssl.PROTOCOL_TLSv1)
   256 
   256 
   257     def setup(self):
   257     def setup(self):
   343     address = ui.config('web', 'address', '')
   343     address = ui.config('web', 'address', '')
   344     port = util.getport(ui.config('web', 'port', 8000))
   344     port = util.getport(ui.config('web', 'port', 8000))
   345     try:
   345     try:
   346         return cls(ui, app, (address, port), handler)
   346         return cls(ui, app, (address, port), handler)
   347     except socket.error as inst:
   347     except socket.error as inst:
   348         raise util.Abort(_("cannot start server at '%s:%d': %s")
   348         raise error.Abort(_("cannot start server at '%s:%d': %s")
   349                          % (address, port, inst.args[1]))
   349                          % (address, port, inst.args[1]))