mercurial/hgweb/server.py
branchstable
changeset 23070 c289fb3624b8
parent 20529 ca970d6acedb
child 23409 dc4d2cd3aa3e
equal deleted inserted replaced
23069:22db405536be 23070:c289fb3624b8
   206         try:
   206         try:
   207             import OpenSSL
   207             import OpenSSL
   208             OpenSSL.SSL.Context
   208             OpenSSL.SSL.Context
   209         except ImportError:
   209         except ImportError:
   210             raise util.Abort(_("SSL support is unavailable"))
   210             raise util.Abort(_("SSL support is unavailable"))
   211         ctx = OpenSSL.SSL.Context(OpenSSL.SSL.SSLv23_METHOD)
   211         ctx = OpenSSL.SSL.Context(OpenSSL.SSL.TLSv1_METHOD)
   212         ctx.use_privatekey_file(ssl_cert)
   212         ctx.use_privatekey_file(ssl_cert)
   213         ctx.use_certificate_file(ssl_cert)
   213         ctx.use_certificate_file(ssl_cert)
   214         sock = socket.socket(httpserver.address_family, httpserver.socket_type)
   214         sock = socket.socket(httpserver.address_family, httpserver.socket_type)
   215         httpserver.socket = OpenSSL.SSL.Connection(ctx, sock)
   215         httpserver.socket = OpenSSL.SSL.Connection(ctx, sock)
   216         httpserver.server_bind()
   216         httpserver.server_bind()
   247         try:
   247         try:
   248             import ssl
   248             import ssl
   249             ssl.wrap_socket
   249             ssl.wrap_socket
   250         except ImportError:
   250         except ImportError:
   251             raise util.Abort(_("SSL support is unavailable"))
   251             raise util.Abort(_("SSL support is unavailable"))
   252         httpserver.socket = ssl.wrap_socket(httpserver.socket, server_side=True,
   252         httpserver.socket = ssl.wrap_socket(
   253             certfile=ssl_cert, ssl_version=ssl.PROTOCOL_SSLv23)
   253             httpserver.socket, server_side=True,
       
   254             certfile=ssl_cert, ssl_version=ssl.PROTOCOL_TLSv1)
   254 
   255 
   255     def setup(self):
   256     def setup(self):
   256         self.connection = self.request
   257         self.connection = self.request
   257         self.rfile = socket._fileobject(self.request, "rb", self.rbufsize)
   258         self.rfile = socket._fileobject(self.request, "rb", self.rbufsize)
   258         self.wfile = socket._fileobject(self.request, "wb", self.wbufsize)
   259         self.wfile = socket._fileobject(self.request, "wb", self.wbufsize)