Refactor FakeSource from a module to a class
This commit is contained in:
@@ -5,41 +5,46 @@ require "timeout"
|
||||
require 'flexnbd/constants'
|
||||
|
||||
module FlexNBD
|
||||
module FakeSource
|
||||
class FakeSource
|
||||
|
||||
def connect( addr, port, err_msg, source_addr=nil, source_port=0 )
|
||||
def initialize( addr, port, err_msg, source_addr=nil, source_port=0 )
|
||||
timing_out( 2, err_msg ) do
|
||||
TCPSocket.new( addr, port, source_addr, source_port )
|
||||
@sock = TCPSocket.new( addr, port, source_addr, source_port )
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def read_hello( client_sock )
|
||||
def close
|
||||
@sock.close
|
||||
end
|
||||
|
||||
|
||||
def read_hello()
|
||||
timing_out( FlexNBD::MS_HELLO_TIME_SECS,
|
||||
"Timed out waiting for hello." ) do
|
||||
fail "No hello." unless (hello = client_sock.read( 152 )) &&
|
||||
fail "No hello." unless (hello = @sock.read( 152 )) &&
|
||||
hello.length==152
|
||||
hello
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def write_write_request( client_sock, from, len, handle )
|
||||
def write_write_request( from, len, handle )
|
||||
fail "Bad handle" unless handle.length == 8
|
||||
|
||||
client_sock.write( "\x25\x60\x95\x13" )
|
||||
client_sock.write( "\x00\x00\x00\x01" )
|
||||
client_sock.write( handle )
|
||||
client_sock.write( "\x0"*4 )
|
||||
client_sock.write( [from].pack( 'N' ) )
|
||||
client_sock.write( [len ].pack( 'N' ) )
|
||||
@sock.write( "\x25\x60\x95\x13" )
|
||||
@sock.write( "\x00\x00\x00\x01" )
|
||||
@sock.write( handle )
|
||||
@sock.write( "\x0"*4 )
|
||||
@sock.write( [from].pack( 'N' ) )
|
||||
@sock.write( [len ].pack( 'N' ) )
|
||||
end
|
||||
|
||||
|
||||
def read_response( client_sock )
|
||||
magic = client_sock.read(4)
|
||||
error_s = client_sock.read(4)
|
||||
handle = client_sock.read(8)
|
||||
def read_response
|
||||
magic = @sock.read(4)
|
||||
error_s = @sock.read(4)
|
||||
handle = @sock.read(8)
|
||||
|
||||
{
|
||||
:magic => magic,
|
||||
@@ -49,6 +54,13 @@ module FlexNBD
|
||||
end
|
||||
|
||||
|
||||
def ensure_disconnected
|
||||
Timeout.timeout( 2 ) do
|
||||
@sock.read(1)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def timing_out( time, msg )
|
||||
begin
|
||||
Timeout.timeout( time ) do
|
||||
@@ -61,5 +73,5 @@ module FlexNBD
|
||||
end
|
||||
|
||||
|
||||
end # module FakeSource
|
||||
end # class FakeSource
|
||||
end # module FlexNBD
|
||||
|
Reference in New Issue
Block a user