Merge
This commit is contained in:
@@ -314,16 +314,9 @@ module FlexNBD
|
||||
|
||||
while !File.socket?(ctrl)
|
||||
pid, status = Process.wait2(@pid, Process::WNOHANG)
|
||||
raise "server did not start (#{cmd}) - UNIX socket didn't appear" if pid
|
||||
raise "server did not start (#{cmd})" if pid
|
||||
sleep 0.1
|
||||
end
|
||||
|
||||
while !socket_open?
|
||||
pid, status = Process.wait2(@pid, Process::WNOHANG)
|
||||
raise "server did not start (#{cmd}) - TCP socket didn't appear" if pid
|
||||
sleep 0.1
|
||||
end
|
||||
|
||||
at_exit { kill }
|
||||
end
|
||||
private :run_serve_cmd
|
||||
@@ -519,15 +512,7 @@ module FlexNBD
|
||||
hsh
|
||||
end
|
||||
|
||||
def socket_open?
|
||||
sock = (TCPSocket.new(@ip, @port) rescue nil)
|
||||
!!sock
|
||||
ensure
|
||||
sock.close rescue nil if sock
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
@@ -8,35 +8,16 @@ module FlexNBD
|
||||
class FakeSource
|
||||
|
||||
def initialize( addr, port, err_msg, source_addr=nil, source_port=0 )
|
||||
timing_out( 10, err_msg ) {
|
||||
@sock = wait_for_server_socket( addr, port, source_addr, source_port )
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
def wait_for_server_socket(addr, port, saddr = nil, sport = 0)
|
||||
sock = nil
|
||||
|
||||
loop do
|
||||
sock = try_get_server_socket( addr, port, saddr, sport )
|
||||
break if sock
|
||||
sleep 0.1
|
||||
end
|
||||
|
||||
sock
|
||||
end
|
||||
|
||||
def try_get_server_socket(addr, port, saddr = nil, sport = 0)
|
||||
if saddr
|
||||
TCPSocket.new( addr, port, saddr, sport ) rescue nil
|
||||
else
|
||||
TCPSocket.new( addr, port ) rescue nil
|
||||
timing_out( 2, err_msg ) do
|
||||
@sock = if source_addr
|
||||
TCPSocket.new( addr, port, source_addr, source_port )
|
||||
else
|
||||
TCPSocket.new( addr, port )
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
def close
|
||||
@sock.close
|
||||
end
|
||||
@@ -156,4 +137,3 @@ module FlexNBD
|
||||
|
||||
end # class FakeSource
|
||||
end # module FlexNBD
|
||||
|
||||
|
Reference in New Issue
Block a user