[ruby/openssl] Introduce basic support for close_read and close_write.

https://github.com/ruby/openssl/commit/c99d24cee9
This commit is contained in:
Samuel Williams 2024-04-22 20:48:40 +12:00 committed by git
parent 8fb430c1da
commit 1699772ac4
2 changed files with 35 additions and 0 deletions

View File

@ -459,6 +459,17 @@ ssbzSibBsu/6iGtCOGEoXJf//////////wIBAg==
nil
end
# Close the stream for reading.
def close_read
# Unsupported and ignored.
# Just don't read any more.
end
# Close the stream for writing.
def close_write
stop
end
private
def using_anon_cipher?

View File

@ -117,6 +117,30 @@ class OpenSSL::TestSSL < OpenSSL::SSLTestCase
}
end
def test_socket_close_write
server_proc = proc do |ctx, ssl|
message = ssl.read
ssl.write(message)
ssl.close_write
ensure
ssl.close
end
start_server(server_proc: server_proc) do |port|
ctx = OpenSSL::SSL::SSLContext.new
ssl = OpenSSL::SSL::SSLSocket.open("127.0.0.1", port, context: ctx)
ssl.sync_close = true
ssl.connect
message = "abc"*1024
ssl.write message
ssl.close_write
assert_equal message, ssl.read
ensure
ssl&.close
end
end
def test_add_certificate
ctx_proc = -> ctx {
# Unset values set by start_server