def initialize(control_port = 21, data_port = nil, options = {})
@port = control_port
@passive_port = data_port
@store = {}
@workdir = '/pub'
@options = options
@command_state = {}
@connection = nil
@data_server = nil
@server = nil
@client = nil
raise Errno::EADDRINUSE, port.to_s if !control_port.zero? && running?
if passive_port && !passive_port.zero? && running?(passive_port)
raise Errno::EADDRINUSE, passive_port.to_s
end
self.mode = options.fetch(:mode, :active)
self.absolute = options.fetch(:absolute, false)
end