module HTTPX::TLS::SSL

def self.BIO_pending(bio)

opt - is their more data buffered?
def self.BIO_pending(bio)
  BIO_ctrl(bio, BIO_CTRL_PENDING, 0, nil)
end

def self.SSL_CTX_sess_set_cache_size(ssl_ctx, op)

def self.SSL_CTX_sess_set_cache_size(ssl_ctx, op)
  SSL_CTX_ctrl(ssl_ctx, SSL_CTRL_SET_SESS_CACHE_SIZE, op, nil)
end

def self.SSL_CTX_set_mode(ssl_ctx, op)

def self.SSL_CTX_set_mode(ssl_ctx, op)
  SSL_CTX_ctrl(ssl_ctx, SSL_CTRL_MODE, op, nil)
end

def self.SSL_CTX_set_options(ssl_ctx, op)

def self.SSL_CTX_set_options(ssl_ctx, op)
  SSL_CTX_ctrl(ssl_ctx, SSL_CTRL_OPTIONS, op, nil)
end

def self.SSL_CTX_set_tlsext_servername_callback(ctx, callback)

def self.SSL_CTX_set_tlsext_servername_callback(ctx, callback)
  SSL_CTX_callback_ctrl(ctx, SSL_CTRL_SET_TLSEXT_SERVERNAME_CB, callback)
end

def self.SSL_set_tlsext_host_name(ssl, host_name)

def self.SSL_set_tlsext_host_name(ssl, host_name)
  name_ptr = FFI::MemoryPointer.from_string(host_name)
  raise Error, "error setting SNI hostname" if SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_HOSTNAME, TLSEXT_NAMETYPE_host_name, name_ptr).zero?
end

def self.TLS_client_method

def self.TLS_client_method
  self.SSLv23_client_method
end

def self.TLS_server_method

def self.TLS_server_method
  self.SSLv23_server_method
end

def self.get_current_cipher(ssl)

def self.get_current_cipher(ssl)
  cipher = SSL_get_current_cipher(ssl)
  SSL_CIPHER_get_name(cipher)
end

def self.get_version(ssl)

def self.get_version(ssl)
  SSL_get_version(ssl)
end

def self.is_init_finished(ssl)

def self.is_init_finished(ssl)
  SSL_state(ssl) == SSL_ST_OK
end

def self.is_init_finished(ssl)

def self.is_init_finished(ssl)
  SSL_is_init_finished(ssl)
end