From 473d0d3211b6853deda01891b00076af074b2cb5 Mon Sep 17 00:00:00 2001 From: shugo Date: Sat, 26 Nov 2016 09:29:11 +0000 Subject: net/ftp: support timeout for TLS handshake. Net::FTP inherits ssl_socket_connect from Net::Protocol to implement timeout. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/net/ftp/test_ftp.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'test/net') diff --git a/test/net/ftp/test_ftp.rb b/test/net/ftp/test_ftp.rb index 5028bd410f..380b80259a 100644 --- a/test/net/ftp/test_ftp.rb +++ b/test/net/ftp/test_ftp.rb @@ -2100,6 +2100,30 @@ EOF ftp.close end end + + def test_tls_connect_timeout + server = TCPServer.new(SERVER_ADDR, 0) + port = server.addr[1] + commands = [] + sock = nil + @thread = Thread.start do + sock = server.accept + sock.print("220 (test_ftp).\r\n") + commands.push(sock.gets) + sock.print("234 AUTH success.\r\n") + end + begin + assert_raise(Net::OpenTimeout) do + Net::FTP.new("localhost", + port: port, + ssl: { ca_file: CA_FILE }, + open_timeout: 0.1) + end + ensure + sock.close if sock + server.close + end + end end def test_abort_tls -- cgit v1.2.3