diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-05-18 21:19:18 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-05-18 21:19:18 +0000 |
commit | 7bbf2f308580f468802cd7d32c94fce1b9f1779e (patch) | |
tree | 0a680f59e70a78d60e776d7b763e618fb2fec624 /lib/net/ftp.rb | |
parent | 34276148c4450faa77bb298cfbe005f7c263f802 (diff) | |
download | ruby-7bbf2f308580f468802cd7d32c94fce1b9f1779e.tar.gz |
* lib: Convert tabs to spaces for ruby files per
http://redmine.ruby-lang.org/projects/ruby/wiki/DeveloperHowto#coding-style
Patch by Steve Klabnik [Ruby 1.9 - Bug #4730]
Patch by Jason Dew [Ruby 1.9 - Feature #4718]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/net/ftp.rb')
-rw-r--r-- | lib/net/ftp.rb | 336 |
1 files changed, 168 insertions, 168 deletions
diff --git a/lib/net/ftp.rb b/lib/net/ftp.rb index 825a1cc22f..14c6b07826 100644 --- a/lib/net/ftp.rb +++ b/lib/net/ftp.rb @@ -136,10 +136,10 @@ module Net @sock = NullSocket.new @logged_in = false if host - connect(host) - if user - login(user, passwd, acct) - end + connect(host) + if user + login(user, passwd, acct) + end end end @@ -197,10 +197,10 @@ module Net # else a TCPSocket is returned. def open_socket(host, port) if defined? SOCKSSocket and ENV["SOCKS_SERVER"] - @passive = true - return SOCKSSocket.open(host, port) + @passive = true + return SOCKSSocket.open(host, port) else - return TCPSocket.open(host, port) + return TCPSocket.open(host, port) end end private :open_socket @@ -213,11 +213,11 @@ module Net # def connect(host, port = FTP_PORT) if @debug_mode - print "connect: ", host, ", ", port, "\n" + print "connect: ", host, ", ", port, "\n" end synchronize do - @sock = open_socket(host, port) - voidresp + @sock = open_socket(host, port) + voidresp end end @@ -226,10 +226,10 @@ module Net # def set_socket(sock, get_greeting = true) synchronize do - @sock = sock - if get_greeting - voidresp - end + @sock = sock + if get_greeting + voidresp + end end end @@ -237,9 +237,9 @@ module Net # then the contents of the password are cleaned from the string using "*" def sanitize(s) if s =~ /^PASS /i - return s[0, 5] + "*" * (s.length - 5) + return s[0, 5] + "*" * (s.length - 5) else - return s + return s end end private :sanitize @@ -248,7 +248,7 @@ module Net # and writes it to the socket. def putline(line) if @debug_mode - print "put: ", sanitize(line), "\n" + print "put: ", sanitize(line), "\n" end line = line + CRLF @sock.write(line) @@ -261,7 +261,7 @@ module Net line = @sock.readline # if get EOF, raise EOFError line.sub!(/(\r\n|\n|\r)\z/n, "") if @debug_mode - print "get: ", sanitize(line), "\n" + print "get: ", sanitize(line), "\n" end return line end @@ -272,11 +272,11 @@ module Net line = getline buff = line if line[3] == ?- - code = line[0, 3] - begin - line = getline - buff << "\n" << line - end until line[0, 3] == code and line[3] != ?- + code = line[0, 3] + begin + line = getline + buff << "\n" << line + end until line[0, 3] == code and line[3] != ?- end return buff << "\n" end @@ -290,13 +290,13 @@ module Net @last_response_code = @last_response[0, 3] case @last_response_code when /\A[123]/ - return @last_response + return @last_response when /\A4/ - raise FTPTempError, @last_response + raise FTPTempError, @last_response when /\A5/ - raise FTPPermError, @last_response + raise FTPPermError, @last_response else - raise FTPProtoError, @last_response + raise FTPProtoError, @last_response end end private :getresp @@ -306,7 +306,7 @@ module Net def voidresp resp = getresp if resp[0] != ?2 - raise FTPReplyError, resp + raise FTPReplyError, resp end end private :voidresp @@ -316,8 +316,8 @@ module Net # def sendcmd(cmd) synchronize do - putline(cmd) - return getresp + putline(cmd) + return getresp end end @@ -326,8 +326,8 @@ module Net # def voidcmd(cmd) synchronize do - putline(cmd) - voidresp + putline(cmd) + voidresp end end @@ -335,11 +335,11 @@ module Net def sendport(host, port) af = (@sock.peeraddr)[0] if af == "AF_INET" - cmd = "PORT " + (host.split(".") + port.divmod(256)).join(",") + cmd = "PORT " + (host.split(".") + port.divmod(256)).join(",") elsif af == "AF_INET6" - cmd = sprintf("EPRT |2|%s|%d|", host, port) + cmd = sprintf("EPRT |2|%s|%d|", host, port) else - raise FTPProtoError, host + raise FTPProtoError, host end voidcmd(cmd) end @@ -360,10 +360,10 @@ module Net # sends the appropriate command to enable a passive connection def makepasv if @sock.peeraddr[0] == "AF_INET" - host, port = parse227(sendcmd("PASV")) + host, port = parse227(sendcmd("PASV")) else - host, port = parse229(sendcmd("EPSV")) - # host, port = parse228(sendcmd("LPSV")) + host, port = parse229(sendcmd("EPSV")) + # host, port = parse228(sendcmd("LPSV")) end return host, port end @@ -372,36 +372,36 @@ module Net # Constructs a connection for transferring data def transfercmd(cmd, rest_offset = nil) if @passive - host, port = makepasv - conn = open_socket(host, port) - if @resume and rest_offset - resp = sendcmd("REST " + rest_offset.to_s) - if resp[0] != ?3 - raise FTPReplyError, resp - end - end - resp = sendcmd(cmd) + host, port = makepasv + conn = open_socket(host, port) + if @resume and rest_offset + resp = sendcmd("REST " + rest_offset.to_s) + if resp[0] != ?3 + raise FTPReplyError, resp + end + end + resp = sendcmd(cmd) # skip 2XX for some ftp servers resp = getresp if resp[0] == ?2 - if resp[0] != ?1 - raise FTPReplyError, resp - end + if resp[0] != ?1 + raise FTPReplyError, resp + end else - sock = makeport - if @resume and rest_offset - resp = sendcmd("REST " + rest_offset.to_s) - if resp[0] != ?3 - raise FTPReplyError, resp - end - end - resp = sendcmd(cmd) + sock = makeport + if @resume and rest_offset + resp = sendcmd("REST " + rest_offset.to_s) + if resp[0] != ?3 + raise FTPReplyError, resp + end + end + resp = sendcmd(cmd) # skip 2XX for some ftp servers resp = getresp if resp[0] == ?2 - if resp[0] != ?1 - raise FTPReplyError, resp - end - conn = sock.accept - sock.close + if resp[0] != ?1 + raise FTPReplyError, resp + end + conn = sock.accept + sock.close end return conn end @@ -417,23 +417,23 @@ module Net # def login(user = "anonymous", passwd = nil, acct = nil) if user == "anonymous" and passwd == nil - passwd = "anonymous@" + passwd = "anonymous@" end resp = "" synchronize do - resp = sendcmd('USER ' + user) - if resp[0] == ?3 + resp = sendcmd('USER ' + user) + if resp[0] == ?3 raise FTPReplyError, resp if passwd.nil? - resp = sendcmd('PASS ' + passwd) - end - if resp[0] == ?3 + resp = sendcmd('PASS ' + passwd) + end + if resp[0] == ?3 raise FTPReplyError, resp if acct.nil? - resp = sendcmd('ACCT ' + acct) - end + resp = sendcmd('ACCT ' + acct) + end end if resp[0] != ?2 - raise FTPReplyError, resp + raise FTPReplyError, resp end @welcome = resp send_type_command @@ -448,7 +448,7 @@ module Net # def retrbinary(cmd, blocksize, rest_offset = nil) # :yield: data synchronize do - with_binary(true) do + with_binary(true) do conn = transfercmd(cmd, rest_offset) loop do data = conn.read(blocksize) @@ -469,7 +469,7 @@ module Net # def retrlines(cmd) # :yield: line synchronize do - with_binary(false) do + with_binary(false) do conn = transfercmd(cmd) loop do line = conn.gets @@ -493,7 +493,7 @@ module Net file.seek(rest_offset, IO::SEEK_SET) end synchronize do - with_binary(true) do + with_binary(true) do conn = transfercmd(cmd) loop do buf = file.read(blocksize) @@ -522,7 +522,7 @@ module Net # def storlines(cmd, file, &block) # :yield: line synchronize do - with_binary(false) do + with_binary(false) do conn = transfercmd(cmd) loop do buf = file.gets @@ -553,7 +553,7 @@ module Net # chunks. # def getbinaryfile(remotefile, localfile = File.basename(remotefile), - blocksize = DEFAULT_BLOCKSIZE) # :yield: data + blocksize = DEFAULT_BLOCKSIZE) # :yield: data result = nil if localfile if @resume @@ -567,15 +567,15 @@ module Net result = "" end begin - f.binmode if localfile - retrbinary("RETR " + remotefile.to_s, blocksize, rest_offset) do |data| - f.write(data) if localfile - yield(data) if block_given? + f.binmode if localfile + retrbinary("RETR " + remotefile.to_s, blocksize, rest_offset) do |data| + f.write(data) if localfile + yield(data) if block_given? result.concat(data) if result - end + end return result ensure - f.close if localfile + f.close if localfile end end @@ -594,15 +594,15 @@ module Net result = "" end begin - retrlines("RETR " + remotefile) do |line, newline| + retrlines("RETR " + remotefile) do |line, newline| l = newline ? line + "\n" : line - f.print(l) if localfile - yield(line, newline) if block_given? + f.print(l) if localfile + yield(line, newline) if block_given? result.concat(l) if result - end + end return result ensure - f.close if localfile + f.close if localfile end end @@ -611,11 +611,11 @@ module Net # binary). See #gettextfile and #getbinaryfile. # def get(remotefile, localfile = File.basename(remotefile), - blocksize = DEFAULT_BLOCKSIZE, &block) # :yield: data + blocksize = DEFAULT_BLOCKSIZE, &block) # :yield: data if @binary - getbinaryfile(remotefile, localfile, blocksize, &block) + getbinaryfile(remotefile, localfile, blocksize, &block) else - gettextfile(remotefile, localfile, &block) + gettextfile(remotefile, localfile, &block) end end @@ -625,7 +625,7 @@ module Net # data in +blocksize+ chunks. # def putbinaryfile(localfile, remotefile = File.basename(localfile), - blocksize = DEFAULT_BLOCKSIZE, &block) # :yield: data + blocksize = DEFAULT_BLOCKSIZE, &block) # :yield: data if @resume begin rest_offset = size(remotefile) @@ -633,18 +633,18 @@ module Net rest_offset = nil end else - rest_offset = nil + rest_offset = nil end f = open(localfile) begin - f.binmode + f.binmode if rest_offset storbinary("APPE " + remotefile, f, blocksize, rest_offset, &block) else storbinary("STOR " + remotefile, f, blocksize, rest_offset, &block) end ensure - f.close + f.close end end @@ -656,9 +656,9 @@ module Net def puttextfile(localfile, remotefile = File.basename(localfile), &block) # :yield: line f = open(localfile) begin - storlines("STOR " + remotefile, f, &block) + storlines("STOR " + remotefile, f, &block) ensure - f.close + f.close end end @@ -667,11 +667,11 @@ module Net # (text or binary). See #puttextfile and #putbinaryfile. # def put(localfile, remotefile = File.basename(localfile), - blocksize = DEFAULT_BLOCKSIZE, &block) + blocksize = DEFAULT_BLOCKSIZE, &block) if @binary - putbinaryfile(localfile, remotefile, blocksize, &block) + putbinaryfile(localfile, remotefile, blocksize, &block) else - puttextfile(localfile, remotefile, &block) + puttextfile(localfile, remotefile, &block) end end @@ -692,11 +692,11 @@ module Net def nlst(dir = nil) cmd = "NLST" if dir - cmd = cmd + " " + dir + cmd = cmd + " " + dir end files = [] retrlines(cmd) do |line| - files.push(line) + files.push(line) end return files end @@ -708,16 +708,16 @@ module Net def list(*args, &block) # :yield: line cmd = "LIST" args.each do |arg| - cmd = cmd + " " + arg.to_s + cmd = cmd + " " + arg.to_s end if block - retrlines(cmd, &block) + retrlines(cmd, &block) else - lines = [] - retrlines(cmd) do |line| - lines << line - end - return lines + lines = [] + retrlines(cmd) do |line| + lines << line + end + return lines end end alias ls list @@ -729,7 +729,7 @@ module Net def rename(fromname, toname) resp = sendcmd("RNFR " + fromname) if resp[0] != ?3 - raise FTPReplyError, resp + raise FTPReplyError, resp end voidcmd("RNTO " + toname) end @@ -740,11 +740,11 @@ module Net def delete(filename) resp = sendcmd("DELE " + filename) if resp[0, 3] == "250" - return + return elsif resp[0] == ?5 - raise FTPPermError, resp + raise FTPPermError, resp else - raise FTPReplyError, resp + raise FTPReplyError, resp end end @@ -753,14 +753,14 @@ module Net # def chdir(dirname) if dirname == ".." - begin - voidcmd("CDUP") - return - rescue FTPPermError => e - if e.message[0, 3] != "500" - raise e - end - end + begin + voidcmd("CDUP") + return + rescue FTPPermError => e + if e.message[0, 3] != "500" + raise e + end + end end cmd = "CWD " + dirname voidcmd(cmd) @@ -781,15 +781,15 @@ module Net MDTM_REGEXP = /^(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/ # :nodoc: - # - # Returns the last modification time of the (remote) file. If +local+ is - # +true+, it is returned as a local time, otherwise it's a UTC time. - # - def mtime(filename, local = false) - str = mdtm(filename) - ary = str.scan(MDTM_REGEXP)[0].collect {|i| i.to_i} - return local ? Time.local(*ary) : Time.gm(*ary) - end + # + # Returns the last modification time of the (remote) file. If +local+ is + # +true+, it is returned as a local time, otherwise it's a UTC time. + # + def mtime(filename, local = false) + str = mdtm(filename) + ary = str.scan(MDTM_REGEXP)[0].collect {|i| i.to_i} + return local ? Time.local(*ary) : Time.gm(*ary) + end # # Creates a remote directory. @@ -821,7 +821,7 @@ module Net def system resp = sendcmd("SYST") if resp[0, 3] != "215" - raise FTPReplyError, resp + raise FTPReplyError, resp end return resp[4 .. -1] end @@ -835,7 +835,7 @@ module Net @sock.send(line, Socket::MSG_OOB) resp = getmultiline unless ["426", "226", "225"].include?(resp[0, 3]) - raise FTPProtoError, resp + raise FTPProtoError, resp end return resp end @@ -856,7 +856,7 @@ module Net def mdtm(filename) resp = sendcmd("MDTM " + filename) if resp[0, 3] == "213" - return resp[3 .. -1].strip + return resp[3 .. -1].strip end end @@ -866,7 +866,7 @@ module Net def help(arg = nil) cmd = "HELP" if arg - cmd = cmd + " " + arg + cmd = cmd + " " + arg end sendcmd(cmd) end @@ -916,16 +916,16 @@ module Net # Returns host and port. def parse227(resp) if resp[0, 3] != "227" - raise FTPReplyError, resp + raise FTPReplyError, resp end left = resp.index("(") right = resp.index(")") if left == nil or right == nil - raise FTPProtoError, resp + raise FTPProtoError, resp end numbers = resp[left + 1 .. right - 1].split(",") if numbers.length != 6 - raise FTPProtoError, resp + raise FTPProtoError, resp end host = numbers[0, 4].join(".") port = (numbers[4].to_i << 8) + numbers[5].to_i @@ -939,31 +939,31 @@ module Net # Returns host and port. def parse228(resp) if resp[0, 3] != "228" - raise FTPReplyError, resp + raise FTPReplyError, resp end left = resp.index("(") right = resp.index(")") if left == nil or right == nil - raise FTPProtoError, resp + 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 + 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 + 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 @@ -975,16 +975,16 @@ module Net # Returns host and port. def parse229(resp) if resp[0, 3] != "229" - raise FTPReplyError, resp + raise FTPReplyError, resp end left = resp.index("(") right = resp.index(")") if left == nil or right == nil - raise FTPProtoError, resp + raise FTPProtoError, resp end numbers = resp[left + 1 .. right - 1].split(resp[left + 1, 1]) if numbers.length != 4 - raise FTPProtoError, resp + raise FTPProtoError, resp end port = numbers[3].to_i host = (@sock.peeraddr())[3] @@ -998,24 +998,24 @@ module Net # Returns host and port. def parse257(resp) if resp[0, 3] != "257" - raise FTPReplyError, resp + raise FTPReplyError, resp end if resp[3, 2] != ' "' - return "" + return "" end dirname = "" i = 5 n = resp.length while i < n - c = resp[i, 1] - i = i + 1 - if c == '"' - if i > n or resp[i, 1] != '"' - break - end - i = i + 1 - end - dirname = dirname + c + c = resp[i, 1] + i = i + 1 + if c == '"' + if i > n or resp[i, 1] != '"' + break + end + i = i + 1 + end + dirname = dirname + c end return dirname end |