method
parse228
v1_9_3_125 -
Show latest stable
- Class:
Net::FTP
parse228(resp)private
handler for response code 228 (Entering Long Passive Mode)
Returns host and port.
# File lib/net/ftp.rb, line 945
def parse228(resp) # :nodoc:
if resp[0, 3] != "228"
raise FTPReplyError, resp
end
left = resp.index("(")
right = resp.index(")")
if left == nil or right == nil
raise FTPProtoError, resp
end
numbers = resp[left + 1 .. right - 1].split(",")
if numbers[0] == "4"
if numbers.length != 9 || numbers[1] != "4" || numbers[2 + 4] != "2"
raise FTPProtoError, resp
end
host = numbers[2, 4].join(".")
port = (numbers[7].to_i << 8) + numbers[8].to_i
elsif numbers[0] == "6"
if numbers.length != 21 || numbers[1] != "16" || numbers[2 + 16] != "2"
raise FTPProtoError, resp
end
v6 = ["", "", "", "", "", "", "", ""]
for i in 0 .. 7
v6[i] = sprintf("%02x%02x", numbers[(i * 2) + 2].to_i,
numbers[(i * 2) + 3].to_i)
end
host = v6[0, 8].join(":")
port = (numbers[19].to_i << 8) + numbers[20].to_i
end
return host, port
end Related methods
- Instance methods
- abort
- acct
- binary=
- chdir
- close
- closed?
- connect
- delete
- dir
- get
- getbinaryfile
- getdir
- gettextfile
- help
- list
- login
- ls
- mdtm
- mkdir
- mtime
- nlst
- noop
- put
- putbinaryfile
- puttextfile
- pwd
- quit
- rename
- retrbinary
- retrlines
- return_code
- return_code=
- rmdir
- sendcmd
- set_socket
- site
- size
- status
- storbinary
- storlines
- system
- voidcmd
- Class methods
- new
- open
- Private methods
-
getline -
getmultiline -
getresp -
makepasv -
makeport -
open_socket -
parse227 -
parse228 -
parse229 -
parse257 -
putline -
sanitize -
send_type_command -
sendport -
transfercmd -
voidresp -
with_binary