net-ftp 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +3 -5
- data/.gitignore +1 -0
- data/lib/net/ftp.rb +30 -20
- metadata +3 -4
- data/Gemfile.lock +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb3a59b7b4a2153ab8e56bdf8dbad9402c9ae73aeb5dc765a990dc0fe491dd46
|
4
|
+
data.tar.gz: 0c5552bcd67be7ae0087d83345716a8b6014d2d5347348ca72a48c5e1c306a2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a67c6f9918df76bfb390cbaa44216e5180ab8f28c703da4fbf2cc83dccd062d420eb180a7db489a37fdc8dfbb676dee78695b71082a622172e208fa220a4a2c
|
7
|
+
data.tar.gz: b501f9ee7c06712ed74eef5b5f414d9abb772d41f639a4bd71824e58cc62230715f5a23d139ccb0ff6c4cbf3033cb931c5921b9616e6f06c249fdcdcd8547af8
|
data/.github/workflows/test.yml
CHANGED
@@ -7,18 +7,16 @@ jobs:
|
|
7
7
|
name: build (${{ matrix.ruby }} / ${{ matrix.os }})
|
8
8
|
strategy:
|
9
9
|
matrix:
|
10
|
-
ruby: [ 2.7, 2.6, 2.5, 2.4, head ]
|
10
|
+
ruby: [ '3.0', 2.7, 2.6, 2.5, 2.4, head ]
|
11
11
|
os: [ ubuntu-latest, macos-latest ]
|
12
12
|
runs-on: ${{ matrix.os }}
|
13
13
|
steps:
|
14
|
-
- uses: actions/checkout@
|
14
|
+
- uses: actions/checkout@v2
|
15
15
|
- name: Set up Ruby
|
16
16
|
uses: ruby/setup-ruby@v1
|
17
17
|
with:
|
18
18
|
ruby-version: ${{ matrix.ruby }}
|
19
19
|
- name: Install dependencies
|
20
|
-
run:
|
21
|
-
gem install bundler --no-document
|
22
|
-
bundle install
|
20
|
+
run: bundle install
|
23
21
|
- name: Run test
|
24
22
|
run: rake test
|
data/.gitignore
CHANGED
data/lib/net/ftp.rb
CHANGED
@@ -85,7 +85,7 @@ module Net
|
|
85
85
|
end
|
86
86
|
|
87
87
|
# :stopdoc:
|
88
|
-
VERSION = "0.1.
|
88
|
+
VERSION = "0.1.2"
|
89
89
|
FTP_PORT = 21
|
90
90
|
CRLF = "\r\n"
|
91
91
|
DEFAULT_BLOCKSIZE = BufferedIO::BUFSIZE
|
@@ -330,14 +330,19 @@ module Net
|
|
330
330
|
# SOCKS_SERVER, then a SOCKSSocket is returned, else a Socket is
|
331
331
|
# returned.
|
332
332
|
def open_socket(host, port) # :nodoc:
|
333
|
-
|
334
|
-
|
335
|
-
|
333
|
+
if defined? SOCKSSocket and ENV["SOCKS_SERVER"]
|
334
|
+
@passive = true
|
335
|
+
Timeout.timeout(@open_timeout, OpenTimeout) do
|
336
336
|
SOCKSSocket.open(host, port)
|
337
|
-
else
|
338
|
-
Socket.tcp(host, port)
|
339
337
|
end
|
340
|
-
|
338
|
+
else
|
339
|
+
begin
|
340
|
+
Socket.tcp host, port, nil, nil, connect_timeout: @open_timeout
|
341
|
+
rescue Errno::ETIMEDOUT #raise Net:OpenTimeout instead for compatibility with previous versions
|
342
|
+
raise Net::OpenTimeout, "Timeout to open TCP connection to "\
|
343
|
+
"#{host}:#{port} (exceeds #{@open_timeout} seconds)"
|
344
|
+
end
|
345
|
+
end
|
341
346
|
end
|
342
347
|
private :open_socket
|
343
348
|
|
@@ -542,18 +547,22 @@ module Net
|
|
542
547
|
def transfercmd(cmd, rest_offset = nil) # :nodoc:
|
543
548
|
if @passive
|
544
549
|
host, port = makepasv
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
550
|
+
begin
|
551
|
+
conn = open_socket(host, port)
|
552
|
+
if @resume and rest_offset
|
553
|
+
resp = sendcmd("REST " + rest_offset.to_s)
|
554
|
+
if !resp.start_with?("3")
|
555
|
+
raise FTPReplyError, resp
|
556
|
+
end
|
557
|
+
end
|
558
|
+
resp = sendcmd(cmd)
|
559
|
+
# skip 2XX for some ftp servers
|
560
|
+
resp = getresp if resp.start_with?("2")
|
561
|
+
if !resp.start_with?("1")
|
549
562
|
raise FTPReplyError, resp
|
550
563
|
end
|
551
|
-
|
552
|
-
|
553
|
-
# skip 2XX for some ftp servers
|
554
|
-
resp = getresp if resp.start_with?("2")
|
555
|
-
if !resp.start_with?("1")
|
556
|
-
raise FTPReplyError, resp
|
564
|
+
ensure
|
565
|
+
conn.close if conn && $!
|
557
566
|
end
|
558
567
|
else
|
559
568
|
sock = makeport
|
@@ -1045,10 +1054,11 @@ module Net
|
|
1045
1054
|
TIME_PARSER = ->(value, local = false) {
|
1046
1055
|
unless /\A(?<year>\d{4})(?<month>\d{2})(?<day>\d{2})
|
1047
1056
|
(?<hour>\d{2})(?<min>\d{2})(?<sec>\d{2})
|
1048
|
-
(?:\.(?<fractions>\d
|
1057
|
+
(?:\.(?<fractions>\d{1,17}))?/x =~ value
|
1058
|
+
value = value[0, 97] + "..." if value.size > 100
|
1049
1059
|
raise FTPProtoError, "invalid time-val: #{value}"
|
1050
1060
|
end
|
1051
|
-
usec = fractions.
|
1061
|
+
usec = ".#{fractions}".to_r * 1_000_000 if fractions
|
1052
1062
|
Time.public_send(local ? :local : :utc, year, month, day, hour, min, sec, usec)
|
1053
1063
|
}
|
1054
1064
|
FACT_PARSERS = Hash.new(CASE_DEPENDENT_PARSER)
|
@@ -1356,7 +1366,7 @@ module Net
|
|
1356
1366
|
end
|
1357
1367
|
|
1358
1368
|
#
|
1359
|
-
# Returns +true+
|
1369
|
+
# Returns +true+ if and only if the connection is closed.
|
1360
1370
|
#
|
1361
1371
|
def closed?
|
1362
1372
|
@sock == nil or @sock.closed?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-ftp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shugo Maeda
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-protocol
|
@@ -48,7 +48,6 @@ files:
|
|
48
48
|
- ".github/workflows/test.yml"
|
49
49
|
- ".gitignore"
|
50
50
|
- Gemfile
|
51
|
-
- Gemfile.lock
|
52
51
|
- LICENSE.txt
|
53
52
|
- README.md
|
54
53
|
- Rakefile
|
@@ -78,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
77
|
- !ruby/object:Gem::Version
|
79
78
|
version: '0'
|
80
79
|
requirements: []
|
81
|
-
rubygems_version: 3.
|
80
|
+
rubygems_version: 3.3.0.dev
|
82
81
|
signing_key:
|
83
82
|
specification_version: 4
|
84
83
|
summary: Support for the File Transfer Protocol.
|
data/Gemfile.lock
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
net-ftp (0.1.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
power_assert (1.1.5)
|
10
|
-
rake (13.0.1)
|
11
|
-
test-unit (3.3.5)
|
12
|
-
power_assert
|
13
|
-
|
14
|
-
PLATFORMS
|
15
|
-
ruby
|
16
|
-
|
17
|
-
DEPENDENCIES
|
18
|
-
net-ftp!
|
19
|
-
rake
|
20
|
-
test-unit
|
21
|
-
|
22
|
-
BUNDLED WITH
|
23
|
-
2.1.4
|