[MethodImpl (MethodImplOptions.InternalCall)]
extern static int mono_btls_ssl_set_verify_param (IntPtr handle, IntPtr param);
+ [MethodImpl (MethodImplOptions.InternalCall)]
+ extern static int mono_btls_ssl_set_server_name (IntPtr handle, IntPtr name);
+
static BoringSslHandle Create_internal (MonoBtlsSslCtx ctx)
{
var handle = mono_btls_ssl_new (ctx.Handle.DangerousGetHandle ());
CheckError (ret);
}
+ public void SetServerName (string name)
+ {
+ CheckThrow ();
+ IntPtr namePtr = IntPtr.Zero;
+ try {
+ namePtr = Marshal.StringToHGlobalAnsi (name);
+ var ret = mono_btls_ssl_set_server_name (
+ Handle.DangerousGetHandle (), namePtr);
+ CheckError (ret);
+ } finally {
+ if (namePtr != IntPtr.Zero)
+ Marshal.FreeHGlobal (namePtr);
+ }
+ }
+
protected override void Close ()
{
mono_btls_ssl_close (Handle.DangerousGetHandle ());
ICALL(BTLS_SSL_16, "mono_btls_ssl_set_cipher_list", mono_btls_ssl_set_cipher_list)
ICALL(BTLS_SSL_17, "mono_btls_ssl_set_max_version", mono_btls_ssl_set_max_version)
ICALL(BTLS_SSL_18, "mono_btls_ssl_set_min_version", mono_btls_ssl_set_min_version)
-ICALL(BTLS_SSL_19, "mono_btls_ssl_set_verify_param", mono_btls_ssl_set_verify_param)
-ICALL(BTLS_SSL_20, "mono_btls_ssl_use_certificate", mono_btls_ssl_use_certificate)
-ICALL(BTLS_SSL_21, "mono_btls_ssl_use_private_key", mono_btls_ssl_use_private_key)
-ICALL(BTLS_SSL_22, "mono_btls_ssl_write", mono_btls_ssl_write)
+ICALL(BTLS_SSL_19, "mono_btls_ssl_set_server_name", mono_btls_ssl_set_server_name)
+ICALL(BTLS_SSL_20, "mono_btls_ssl_set_verify_param", mono_btls_ssl_set_verify_param)
+ICALL(BTLS_SSL_21, "mono_btls_ssl_use_certificate", mono_btls_ssl_use_certificate)
+ICALL(BTLS_SSL_22, "mono_btls_ssl_use_private_key", mono_btls_ssl_use_private_key)
+ICALL(BTLS_SSL_23, "mono_btls_ssl_write", mono_btls_ssl_write)
ICALL_TYPE(BTLS_SSL_CTX, "Mono.Btls.MonoBtlsSslCtx", BTLS_SSL_CTX_1)
ICALL(BTLS_SSL_CTX_1, "mono_btls_ssl_ctx_debug_printf", mono_btls_ssl_ctx_debug_printf)