Skip to content

Commit ab320af

Browse files
author
Jeremy Bopp
committed
Close the socket where opened when necessary
1 parent 5a4ddb1 commit ab320af

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

lib/net/ldap/connection.rb

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,12 @@ def initialize(server)
1919
yield self if block_given?
2020
end
2121

22-
def prepare_socket(server, close = false)
22+
def prepare_socket(server)
2323
socket = server[:socket]
2424
encryption = server[:encryption]
2525

2626
@conn = socket
2727
setup_encryption encryption if encryption
28-
rescue
29-
# Ensure the connection is closed when requested in the event of an SSL
30-
# setup failure.
31-
@conn.close if close
32-
@conn = nil
33-
raise
3428
end
3529

3630
def open_connection(server)
@@ -40,10 +34,14 @@ def open_connection(server)
4034
errors = []
4135
hosts.each do |host, port|
4236
begin
43-
prepare_socket(server.merge(socket: TCPSocket.new(host, port)), true)
37+
socket = TCPSocket.new(host, port)
38+
prepare_socket(server.merge(socket: socket))
4439
return
4540
rescue Net::LDAP::Error, SocketError, SystemCallError,
4641
OpenSSL::SSL::SSLError => e
42+
# Ensure the connection is closed in the event a setup failure.
43+
socket.close unless socket.nil?
44+
socket = nil
4745
errors << [e, host, port]
4846
end
4947
end

0 commit comments

Comments
 (0)