method
transfercmd
v2_6_3 -
Show latest stable
- Class:
Net::FTP
transfercmd(cmd, rest_offset = nil)private
Constructs a connection for transferring data
# File lib/net/ftp.rb, line 541
def transfercmd(cmd, rest_offset = nil) # :nodoc:
if @passive
host, port = makepasv
conn = open_socket(host, port)
if @resume and rest_offset
resp = sendcmd("REST " + rest_offset.to_s)
if !resp.start_with?("3")
raise FTPReplyError, resp
end
end
resp = sendcmd(cmd)
# skip 2XX for some ftp servers
resp = getresp if resp.start_with?("2")
if !resp.start_with?("1")
raise FTPReplyError, resp
end
else
sock = makeport
begin
addr = sock.local_address
sendport(addr.ip_address, addr.ip_port)
if @resume and rest_offset
resp = sendcmd("REST " + rest_offset.to_s)
if !resp.start_with?("3")
raise FTPReplyError, resp
end
end
resp = sendcmd(cmd)
# skip 2XX for some ftp servers
resp = getresp if resp.start_with?("2")
if !resp.start_with?("1")
raise FTPReplyError, resp
end
conn, = sock.accept
sock.shutdown(Socket::SHUT_WR) rescue nil
sock.read rescue nil
ensure
sock.close
end
end
if @private_data_connection
return BufferedSSLSocket.new(start_tls_session(conn),
read_timeout: @read_timeout)
else
return BufferedSocket.new(conn, read_timeout: @read_timeout)
end
end Related methods
- Instance methods
- abort
- acct
- binary=
- chdir
- close
- closed?
- connect
- delete
- dir
- get
- getbinaryfile
- getdir
- gettextfile
- help
- list
- login
- ls
- mdtm
- mkdir
- mlsd
- mlst
- mtime
- nlst
- noop
- put
- putbinaryfile
- puttextfile
- pwd
- quit
- read_timeout=
- rename
- retrbinary
- retrlines
- return_code
- return_code=
- rmdir
- sendcmd
- set_socket
- site
- size
- status
- storbinary
- storlines
- system
- voidcmd
- Class methods
- default_passive
- default_passive=
- new
- open
- Private methods
-
get_body -
getline -
getmultiline -
getresp -
makepasv -
makeport -
open_socket -
parse227 -
parse228 -
parse229 -
parse257 -
parse_mlsx_entry -
parse_pasv_ipv4_host -
parse_pasv_ipv6_host -
parse_pasv_port -
putline -
sanitize -
send_type_command -
sendport -
start_tls_session -
transfercmd -
voidresp -
with_binary