From 5645e760ba5da405bdfa5b82c0c60c3702697c83 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Wed, 19 Aug 2026 14:11:10 +1200 Subject: [PATCH] ssl: add server handshake aliases Add SSLSocket#start and #start_nonblock as aliases for #accept and #accept_nonblock. This gives server code a handshake-oriented name when SSLServer#start_immediately is disabled, while preserving the existing interface and behavior.\n\nRelated to https://github.com/ruby/openssl/issues/760. Assisted-By: devx/3ed43c18-3c9a-4ad9-a6f5-6668caa29658 --- ext/openssl/ossl_ssl.c | 2 ++ test/openssl/test_ssl.rb | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c index fcbbec0b3..8b9fa5cda 100644 --- a/ext/openssl/ossl_ssl.c +++ b/ext/openssl/ossl_ssl.c @@ -3171,6 +3171,8 @@ Init_ossl_ssl(void) rb_define_method(cSSLSocket, "connect_nonblock", ossl_ssl_connect_nonblock, -1); rb_define_method(cSSLSocket, "accept", ossl_ssl_accept, 0); rb_define_method(cSSLSocket, "accept_nonblock", ossl_ssl_accept_nonblock, -1); + rb_define_alias(cSSLSocket, "start", "accept"); + rb_define_alias(cSSLSocket, "start_nonblock", "accept_nonblock"); rb_define_method(cSSLSocket, "sysread", ossl_ssl_read, -1); rb_define_private_method(cSSLSocket, "sysread_nonblock", ossl_ssl_read_nonblock, -1); rb_define_method(cSSLSocket, "syswrite", ossl_ssl_write, 1); diff --git a/test/openssl/test_ssl.rb b/test/openssl/test_ssl.rb index 914b80623..a61ccc00b 100644 --- a/test/openssl/test_ssl.rb +++ b/test/openssl/test_ssl.rb @@ -4,6 +4,17 @@ if defined?(OpenSSL::SSL) class OpenSSL::TestSSL < OpenSSL::SSLTestCase + def test_server_handshake_aliases + assert_equal( + OpenSSL::SSL::SSLSocket.instance_method(:accept), + OpenSSL::SSL::SSLSocket.instance_method(:start), + ) + assert_equal( + OpenSSL::SSL::SSLSocket.instance_method(:accept_nonblock), + OpenSSL::SSL::SSLSocket.instance_method(:start_nonblock), + ) + end + def test_bad_socket bad_socket = Struct.new(:sync).new assert_raise TypeError do