parameters: (self, context, socket=None)
docstring: Create a new Connection object, using the given OpenSSL.SSL.Context
          instance and socket.
  
          :param context: An SSL Context to use for this connection
          :param socket: The socket to use for transport layer
docstring_summary: Create a new Connection object, using the given OpenSSL.SSL.Context
          instance and socket.
docstring_tokens: Create a new Connection object using the given OpenSSL . SSL . Context instance and socket .
function: def __init__(self, context, socket=None):
          """
          Create a new Connection object, using the given OpenSSL.SSL.Context
          instance and socket.
  
          :param context: An SSL Context to use for this connection
          :param socket: The socket to use for transport layer
          """
          if not isinstance(context, Context):
              raise TypeError("context must be a Context instance")
  
          ssl = _lib.SSL_new(context._context)
          self._ssl = _ffi.gc(ssl, _lib.SSL_free)
          # We set SSL_MODE_AUTO_RETRY to handle situations where OpenSSL returns
          # an SSL_ERROR_WANT_READ when processing a non-application data packet
          # even though there is still data on the underlying transport.
          # See https://github.com/openssl/openssl/issues/6234 for more details.
          _lib.SSL_set_mode(self._ssl, _lib.SSL_MODE_AUTO_RETRY)
          self._context = context
          self._app_data = None
  
          # References to strings used for Next Protocol Negotiation. OpenSSL's
          # header files suggest that these might get copied at some point, but
          # doesn't specify when, so we store them here to make sure they don't
          # get freed before OpenSSL uses them.
          self._npn_advertise_callback_args = None
          self._npn_select_callback_args = None
  
          # References to strings used for Application Layer Protocol
          # Negotiation. These strings get copied at some point but it's well
          # after the callback returns, so we have to hang them somewhere to
          # avoid them getting freed.
          self._alpn_select_callback_args = None
  
          self._reverse_mapping[self._ssl] = self
  
          if socket is None:
              self._socket = None
              # Don't set up any gc for these, SSL_free will take care of them.
              self._into_ssl = _lib.BIO_new(_lib.BIO_s_mem())
              _openssl_assert(self._into_ssl != _ffi.NULL)
  
              self._from_ssl = _lib.BIO_new(_lib.BIO_s_mem())
              _openssl_assert(self._from_ssl != _ffi.NULL)
  
              _lib.SSL_set_bio(self._ssl, self._into_ssl, self._from_ssl)
          else:
              self._into_ssl = None
              self._from_ssl = None
              self._socket = socket
              set_result = _lib.SSL_set_fd(
                  self._ssl, _asFileDescriptor(self._socket))
              _openssl_assert(set_result == 1)
function_tokens: def __init__ ( self , context , socket = None ) : if not isinstance ( context , Context ) : raise TypeError ( "context must be a Context instance" ) ssl = _lib . SSL_new ( context . _context ) self . _ssl = _ffi . gc ( ssl , _lib . SSL_free ) # We set SSL_MODE_AUTO_RETRY to handle situations where OpenSSL returns # an SSL_ERROR_WANT_READ when processing a non-application data packet # even though there is still data on the underlying transport. # See https://github.com/openssl/openssl/issues/6234 for more details. _lib . SSL_set_mode ( self . _ssl , _lib . SSL_MODE_AUTO_RETRY ) self . _context = context self . _app_data = None # References to strings used for Next Protocol Negotiation. OpenSSL's # header files suggest that these might get copied at some point, but # doesn't specify when, so we store them here to make sure they don't # get freed before OpenSSL uses them. self . _npn_advertise_callback_args = None self . _npn_select_callback_args = None # References to strings used for Application Layer Protocol # Negotiation. These strings get copied at some point but it's well # after the callback returns, so we have to hang them somewhere to # avoid them getting freed. self . _alpn_select_callback_args = None self . _reverse_mapping [ self . _ssl ] = self if socket is None : self . _socket = None # Don't set up any gc for these, SSL_free will take care of them. self . _into_ssl = _lib . BIO_new ( _lib . BIO_s_mem ( ) ) _openssl_assert ( self . _into_ssl != _ffi . NULL ) self . _from_ssl = _lib . BIO_new ( _lib . BIO_s_mem ( ) ) _openssl_assert ( self . _from_ssl != _ffi . NULL ) _lib . SSL_set_bio ( self . _ssl , self . _into_ssl , self . _from_ssl ) else : self . _into_ssl = None self . _from_ssl = None self . _socket = socket set_result = _lib . SSL_set_fd ( self . _ssl , _asFileDescriptor ( self . _socket ) ) _openssl_assert ( set_result == 1 )