Merge
This commit is contained in:
@@ -929,8 +929,8 @@ int do_serve(struct server* params)
|
|||||||
int has_control;
|
int has_control;
|
||||||
|
|
||||||
error_set_handler((cleanup_handler*) serve_cleanup, params);
|
error_set_handler((cleanup_handler*) serve_cleanup, params);
|
||||||
serve_init_allocation_map(params);
|
|
||||||
serve_open_server_socket(params);
|
serve_open_server_socket(params);
|
||||||
|
serve_init_allocation_map(params);
|
||||||
serve_accept_loop(params);
|
serve_accept_loop(params);
|
||||||
has_control = params->has_control;
|
has_control = params->has_control;
|
||||||
serve_cleanup(params, 0);
|
serve_cleanup(params, 0);
|
||||||
|
@@ -314,16 +314,9 @@ module FlexNBD
|
|||||||
|
|
||||||
while !File.socket?(ctrl)
|
while !File.socket?(ctrl)
|
||||||
pid, status = Process.wait2(@pid, Process::WNOHANG)
|
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
|
sleep 0.1
|
||||||
end
|
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 }
|
at_exit { kill }
|
||||||
end
|
end
|
||||||
private :run_serve_cmd
|
private :run_serve_cmd
|
||||||
@@ -519,15 +512,7 @@ module FlexNBD
|
|||||||
hsh
|
hsh
|
||||||
end
|
end
|
||||||
|
|
||||||
def socket_open?
|
|
||||||
sock = (TCPSocket.new(@ip, @port) rescue nil)
|
|
||||||
!!sock
|
|
||||||
ensure
|
|
||||||
sock.close rescue nil if sock
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@@ -8,35 +8,16 @@ module FlexNBD
|
|||||||
class FakeSource
|
class FakeSource
|
||||||
|
|
||||||
def initialize( addr, port, err_msg, source_addr=nil, source_port=0 )
|
def initialize( addr, port, err_msg, source_addr=nil, source_port=0 )
|
||||||
timing_out( 10, err_msg ) {
|
timing_out( 2, err_msg ) do
|
||||||
@sock = wait_for_server_socket( addr, port, source_addr, source_port )
|
@sock = if source_addr
|
||||||
}
|
TCPSocket.new( addr, port, source_addr, source_port )
|
||||||
end
|
else
|
||||||
|
TCPSocket.new( addr, 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
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def close
|
def close
|
||||||
@sock.close
|
@sock.close
|
||||||
end
|
end
|
||||||
@@ -156,4 +137,3 @@ module FlexNBD
|
|||||||
|
|
||||||
end # class FakeSource
|
end # class FakeSource
|
||||||
end # module FlexNBD
|
end # module FlexNBD
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user