1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Shutdown gracefully.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2012-05-20 21:56:40 +00:00
parent 03570f8091
commit d795f2d1a8
2 changed files with 14 additions and 0 deletions

View file

@ -433,6 +433,8 @@ module Net
end
conn = BufferedSocket.new(sock.accept)
conn.read_timeout = @read_timeout
sock.shutdown(Socket::SHUT_WR)
sock.read rescue nil
sock.close
end
return conn
@ -487,6 +489,9 @@ module Net
break if data == nil
yield(data)
end
conn.shutdown(Socket::SHUT_WR)
conn.read_timeout = 1
conn.read
conn.close
voidresp
end
@ -508,6 +513,9 @@ module Net
break if line == nil
yield(line.sub(/\r?\n\z/, ""), !line.match(/\n\z/).nil?)
end
conn.shutdown(Socket::SHUT_WR)
conn.read_timeout = 1
conn.read
conn.close
voidresp
end

View file

@ -271,6 +271,8 @@ class FTPTest < Test::Unit::TestCase
end
conn.print(l, "\r\n")
end
conn.shutdown(Socket::SHUT_WR)
conn.read
conn.close
sock.print("226 Directory send OK.\r\n")
}
@ -398,6 +400,7 @@ class FTPTest < Test::Unit::TestCase
buf << s
end
end
assert_equal(1024, buf.bytesize)
assert_equal(binary_data[0, 1024], buf)
assert_match(/\APORT /, commands.shift)
assert_equal("RETR foo\r\n", commands.shift)
@ -434,6 +437,8 @@ class FTPTest < Test::Unit::TestCase
sleep(0.1)
conn.print(s)
end
conn.shutdown(Socket::SHUT_WR)
conn.read
conn.close
sock.print("226 Transfer complete.\r\n")
}
@ -450,6 +455,7 @@ class FTPTest < Test::Unit::TestCase
ftp.retrbinary("RETR foo", 1024) do |s|
buf << s
end
assert_equal(binary_data.bytesize, buf.bytesize)
assert_equal(binary_data, buf)
assert_match(/\APORT /, commands.shift)
assert_equal("RETR foo\r\n", commands.shift)