investtools-ftpd 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +5 -0
- data/.yardopts +7 -0
- data/Changelog.md +310 -0
- data/Gemfile +15 -0
- data/Gemfile.lock +93 -0
- data/LICENSE.md +9 -0
- data/README.md +371 -0
- data/Rakefile +14 -0
- data/VERSION +1 -0
- data/doc/benchmarks.md +82 -0
- data/doc/references.md +66 -0
- data/doc/rfc-compliance.md +292 -0
- data/examples/example.rb +275 -0
- data/examples/example_spec.rb +93 -0
- data/examples/hello_world.rb +32 -0
- data/features/example/eplf.feature +14 -0
- data/features/example/example.feature +18 -0
- data/features/example/read_only.feature +63 -0
- data/features/example/step_definitions/example_server.rb +11 -0
- data/features/ftp_server/abort.feature +13 -0
- data/features/ftp_server/allo.feature +33 -0
- data/features/ftp_server/append.feature +94 -0
- data/features/ftp_server/cdup.feature +36 -0
- data/features/ftp_server/command_errors.feature +13 -0
- data/features/ftp_server/concurrent_sessions.feature +14 -0
- data/features/ftp_server/delay_after_failed_login.feature +23 -0
- data/features/ftp_server/delete.feature +60 -0
- data/features/ftp_server/directory_navigation.feature +59 -0
- data/features/ftp_server/disconnect_after_failed_logins.feature +25 -0
- data/features/ftp_server/eprt.feature +55 -0
- data/features/ftp_server/epsv.feature +36 -0
- data/features/ftp_server/features.feature +38 -0
- data/features/ftp_server/file_structure.feature +43 -0
- data/features/ftp_server/get.feature +80 -0
- data/features/ftp_server/get_ipv6.feature +43 -0
- data/features/ftp_server/get_tls.feature +23 -0
- data/features/ftp_server/help.feature +21 -0
- data/features/ftp_server/implicit_tls.feature +23 -0
- data/features/ftp_server/invertability.feature +15 -0
- data/features/ftp_server/list.feature +94 -0
- data/features/ftp_server/list_tls.feature +29 -0
- data/features/ftp_server/logging.feature +11 -0
- data/features/ftp_server/login_auth_level_account.feature +51 -0
- data/features/ftp_server/login_auth_level_password.feature +59 -0
- data/features/ftp_server/login_auth_level_user.feature +31 -0
- data/features/ftp_server/max_connections.feature +39 -0
- data/features/ftp_server/mdtm.feature +53 -0
- data/features/ftp_server/mkdir.feature +70 -0
- data/features/ftp_server/mode.feature +43 -0
- data/features/ftp_server/name_list.feature +77 -0
- data/features/ftp_server/name_list_tls.feature +30 -0
- data/features/ftp_server/noop.feature +17 -0
- data/features/ftp_server/options.feature +17 -0
- data/features/ftp_server/pasv.feature +23 -0
- data/features/ftp_server/port.feature +49 -0
- data/features/ftp_server/put.feature +79 -0
- data/features/ftp_server/put_tls.feature +23 -0
- data/features/ftp_server/put_unique.feature +56 -0
- data/features/ftp_server/quit.feature +23 -0
- data/features/ftp_server/reinitialize.feature +13 -0
- data/features/ftp_server/rename.feature +97 -0
- data/features/ftp_server/rmdir.feature +71 -0
- data/features/ftp_server/site.feature +13 -0
- data/features/ftp_server/size.feature +69 -0
- data/features/ftp_server/status.feature +18 -0
- data/features/ftp_server/step_definitions/logging.rb +8 -0
- data/features/ftp_server/step_definitions/test_server.rb +65 -0
- data/features/ftp_server/structure_mount.feature +13 -0
- data/features/ftp_server/syntax_errors.feature +18 -0
- data/features/ftp_server/syst.feature +18 -0
- data/features/ftp_server/timeout.feature +26 -0
- data/features/ftp_server/type.feature +59 -0
- data/features/step_definitions/append.rb +15 -0
- data/features/step_definitions/client.rb +24 -0
- data/features/step_definitions/client_and_server_files.rb +24 -0
- data/features/step_definitions/client_files.rb +14 -0
- data/features/step_definitions/command.rb +5 -0
- data/features/step_definitions/connect.rb +37 -0
- data/features/step_definitions/delete.rb +15 -0
- data/features/step_definitions/directory_navigation.rb +26 -0
- data/features/step_definitions/error_replies.rb +115 -0
- data/features/step_definitions/features.rb +21 -0
- data/features/step_definitions/file_structure.rb +16 -0
- data/features/step_definitions/generic_send.rb +9 -0
- data/features/step_definitions/get.rb +16 -0
- data/features/step_definitions/help.rb +18 -0
- data/features/step_definitions/invalid_commands.rb +11 -0
- data/features/step_definitions/line_endings.rb +7 -0
- data/features/step_definitions/list.rb +73 -0
- data/features/step_definitions/login.rb +82 -0
- data/features/step_definitions/mkdir.rb +9 -0
- data/features/step_definitions/mode.rb +15 -0
- data/features/step_definitions/mtime.rb +23 -0
- data/features/step_definitions/noop.rb +15 -0
- data/features/step_definitions/options.rb +9 -0
- data/features/step_definitions/passive.rb +3 -0
- data/features/step_definitions/pending.rb +3 -0
- data/features/step_definitions/port.rb +5 -0
- data/features/step_definitions/put.rb +29 -0
- data/features/step_definitions/quit.rb +15 -0
- data/features/step_definitions/rename.rb +11 -0
- data/features/step_definitions/rmdir.rb +9 -0
- data/features/step_definitions/server_files.rb +61 -0
- data/features/step_definitions/server_title.rb +12 -0
- data/features/step_definitions/size.rb +20 -0
- data/features/step_definitions/status.rb +9 -0
- data/features/step_definitions/success_replies.rb +7 -0
- data/features/step_definitions/system.rb +7 -0
- data/features/step_definitions/timing.rb +19 -0
- data/features/step_definitions/type.rb +15 -0
- data/features/support/env.rb +4 -0
- data/features/support/example_server.rb +67 -0
- data/features/support/file_templates/ascii_unix +4 -0
- data/features/support/file_templates/ascii_windows +4 -0
- data/features/support/file_templates/binary +0 -0
- data/features/support/test_client.rb +250 -0
- data/features/support/test_file_templates.rb +33 -0
- data/features/support/test_server.rb +293 -0
- data/features/support/test_server_files.rb +57 -0
- data/ftpd.gemspec +283 -0
- data/insecure-test-cert.pem +29 -0
- data/investtools-ftpd.gemspec +284 -0
- data/lib/ftpd.rb +86 -0
- data/lib/ftpd/auth_levels.rb +9 -0
- data/lib/ftpd/cmd_abor.rb +13 -0
- data/lib/ftpd/cmd_allo.rb +20 -0
- data/lib/ftpd/cmd_appe.rb +24 -0
- data/lib/ftpd/cmd_auth.rb +21 -0
- data/lib/ftpd/cmd_cdup.rb +16 -0
- data/lib/ftpd/cmd_cwd.rb +20 -0
- data/lib/ftpd/cmd_dele.rb +21 -0
- data/lib/ftpd/cmd_eprt.rb +23 -0
- data/lib/ftpd/cmd_epsv.rb +30 -0
- data/lib/ftpd/cmd_feat.rb +44 -0
- data/lib/ftpd/cmd_help.rb +29 -0
- data/lib/ftpd/cmd_list.rb +33 -0
- data/lib/ftpd/cmd_login.rb +60 -0
- data/lib/ftpd/cmd_mdtm.rb +27 -0
- data/lib/ftpd/cmd_mkd.rb +23 -0
- data/lib/ftpd/cmd_mode.rb +27 -0
- data/lib/ftpd/cmd_nlst.rb +27 -0
- data/lib/ftpd/cmd_noop.rb +14 -0
- data/lib/ftpd/cmd_opts.rb +14 -0
- data/lib/ftpd/cmd_pasv.rb +28 -0
- data/lib/ftpd/cmd_pbsz.rb +23 -0
- data/lib/ftpd/cmd_port.rb +28 -0
- data/lib/ftpd/cmd_prot.rb +34 -0
- data/lib/ftpd/cmd_pwd.rb +15 -0
- data/lib/ftpd/cmd_quit.rb +18 -0
- data/lib/ftpd/cmd_rein.rb +13 -0
- data/lib/ftpd/cmd_rename.rb +32 -0
- data/lib/ftpd/cmd_rest.rb +13 -0
- data/lib/ftpd/cmd_retr.rb +24 -0
- data/lib/ftpd/cmd_rmd.rb +22 -0
- data/lib/ftpd/cmd_site.rb +13 -0
- data/lib/ftpd/cmd_size.rb +29 -0
- data/lib/ftpd/cmd_smnt.rb +13 -0
- data/lib/ftpd/cmd_stat.rb +15 -0
- data/lib/ftpd/cmd_stor.rb +25 -0
- data/lib/ftpd/cmd_stou.rb +25 -0
- data/lib/ftpd/cmd_stru.rb +27 -0
- data/lib/ftpd/cmd_syst.rb +16 -0
- data/lib/ftpd/cmd_type.rb +28 -0
- data/lib/ftpd/command_handler.rb +90 -0
- data/lib/ftpd/command_handler_factory.rb +51 -0
- data/lib/ftpd/command_handlers.rb +60 -0
- data/lib/ftpd/command_loop.rb +80 -0
- data/lib/ftpd/command_sequence_checker.rb +58 -0
- data/lib/ftpd/config.rb +13 -0
- data/lib/ftpd/connection_throttle.rb +56 -0
- data/lib/ftpd/connection_tracker.rb +82 -0
- data/lib/ftpd/data_connection_helper.rb +123 -0
- data/lib/ftpd/disk_file_system.rb +434 -0
- data/lib/ftpd/error.rb +21 -0
- data/lib/ftpd/exception_translator.rb +32 -0
- data/lib/ftpd/exceptions.rb +62 -0
- data/lib/ftpd/file_info.rb +115 -0
- data/lib/ftpd/file_system_helper.rb +67 -0
- data/lib/ftpd/ftp_server.rb +214 -0
- data/lib/ftpd/gets_peer_address.rb +41 -0
- data/lib/ftpd/insecure_certificate.rb +16 -0
- data/lib/ftpd/list_format/eplf.rb +74 -0
- data/lib/ftpd/list_format/ls.rb +154 -0
- data/lib/ftpd/list_path.rb +28 -0
- data/lib/ftpd/null_logger.rb +22 -0
- data/lib/ftpd/protocols.rb +60 -0
- data/lib/ftpd/read_only_disk_file_system.rb +22 -0
- data/lib/ftpd/server.rb +139 -0
- data/lib/ftpd/session.rb +220 -0
- data/lib/ftpd/session_config.rb +111 -0
- data/lib/ftpd/stream.rb +80 -0
- data/lib/ftpd/telnet.rb +114 -0
- data/lib/ftpd/temp_dir.rb +22 -0
- data/lib/ftpd/tls_server.rb +111 -0
- data/lib/ftpd/translate_exceptions.rb +68 -0
- data/rake_tasks/cucumber.rake +9 -0
- data/rake_tasks/default.rake +1 -0
- data/rake_tasks/jeweler.rake +52 -0
- data/rake_tasks/spec.rake +3 -0
- data/rake_tasks/test.rake +2 -0
- data/rake_tasks/yard.rake +3 -0
- data/spec/command_sequence_checker_spec.rb +83 -0
- data/spec/connection_throttle_spec.rb +99 -0
- data/spec/connection_tracker_spec.rb +97 -0
- data/spec/disk_file_system_spec.rb +320 -0
- data/spec/exception_translator_spec.rb +36 -0
- data/spec/file_info_spec.rb +59 -0
- data/spec/ftp_server_error_spec.rb +13 -0
- data/spec/list_format/eplf_spec.rb +61 -0
- data/spec/list_format/ls_spec.rb +270 -0
- data/spec/list_path_spec.rb +21 -0
- data/spec/null_logger_spec.rb +24 -0
- data/spec/protocols_spec.rb +139 -0
- data/spec/server_spec.rb +81 -0
- data/spec/spec_helper.rb +15 -0
- data/spec/telnet_spec.rb +75 -0
- data/spec/translate_exceptions_spec.rb +40 -0
- metadata +404 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3330a5b42b50287ff8dbcef7612fce89c864785e
|
4
|
+
data.tar.gz: c717b2b7af91d1c31eec8fb4157e95c8f3eaba22
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d1ffe5fdca6c5790ab6e6f55388d7dd71d233145e882dc0b52576c7dd0592bddb0b250806343595c5e719b8cacbae3aab87c48cbc2e0b41d020e6cc31c7a5a70
|
7
|
+
data.tar.gz: 4f1c7ecc56266a76c2919ba557f4076c60a6a24a8bc4474c3eb9bf9a17968783d9e10f602c8ec4e447dcca4dd15c91d1635d0c4294780278cca8b88d45768782
|
data/.yardopts
ADDED
data/Changelog.md
ADDED
@@ -0,0 +1,310 @@
|
|
1
|
+
This is the change log for the main branch of ftpd, which supports
|
2
|
+
Ruby 1.9 and greater. For ruby 1.8.7, please use the latest version
|
3
|
+
before 0.8.0.
|
4
|
+
|
5
|
+
### 1.0.1
|
6
|
+
|
7
|
+
* Less strict gem dependencies
|
8
|
+
|
9
|
+
### 1.0.0
|
10
|
+
|
11
|
+
Administration
|
12
|
+
|
13
|
+
* Update gem versions
|
14
|
+
* Declare stability (v. 1.0.0)
|
15
|
+
|
16
|
+
### 0.17.0
|
17
|
+
|
18
|
+
This release is brought to you by Mike Ragalie. Thanks, Mike!
|
19
|
+
|
20
|
+
Features
|
21
|
+
|
22
|
+
* Streaming file transfers (issues #12 and #26)
|
23
|
+
|
24
|
+
API Changes
|
25
|
+
|
26
|
+
These breaking API changes are for streaming file transfers. Custom
|
27
|
+
file systems will notice these changes. Nobody else should.
|
28
|
+
|
29
|
+
* The FileSystemErrorTranslator has been removed. Instead, the file
|
30
|
+
system may raise FtpServerError with a message and an optional error
|
31
|
+
code.
|
32
|
+
|
33
|
+
* DiskFileSystem#write now takes an `Ftpd::Stream` object instead of a
|
34
|
+
`String`.
|
35
|
+
|
36
|
+
* DiskFileSystem#read expects to receive a block and yields an `IO`
|
37
|
+
object to the block.
|
38
|
+
|
39
|
+
### 0.16.0
|
40
|
+
|
41
|
+
Bug fixes
|
42
|
+
|
43
|
+
* Fix Errno::ENOTSOCK error in Ruby 2.1.2 (issue #25)
|
44
|
+
|
45
|
+
### 0.15.0
|
46
|
+
|
47
|
+
Bug fixes
|
48
|
+
|
49
|
+
* Ignore Errno::ENOTCONN on socket shutdown (issue #24)
|
50
|
+
|
51
|
+
Administration
|
52
|
+
|
53
|
+
* Remove examples/foo.rb (accidental commit)
|
54
|
+
|
55
|
+
### 0.14.0
|
56
|
+
|
57
|
+
Administration
|
58
|
+
|
59
|
+
* Remove markdown link (but leave its text) in package description
|
60
|
+
|
61
|
+
### 0.13.0
|
62
|
+
|
63
|
+
Administration
|
64
|
+
|
65
|
+
* Remove badges from package description
|
66
|
+
|
67
|
+
### 0.12.0
|
68
|
+
|
69
|
+
Bug fixes
|
70
|
+
|
71
|
+
* Fix Errno::EADDRINUSE when reusing port (issue #23)
|
72
|
+
|
73
|
+
### 0.11.0
|
74
|
+
|
75
|
+
Bug fixes
|
76
|
+
|
77
|
+
* Fix Bad file descriptor exception on stop (issue #20)
|
78
|
+
* CWD returns 250, not 257 (issue #18)
|
79
|
+
|
80
|
+
Enhancements
|
81
|
+
|
82
|
+
* MDTM command (issue #19)
|
83
|
+
* SIZE command (issue #19)
|
84
|
+
|
85
|
+
### 0.10.0
|
86
|
+
|
87
|
+
Bug fixes
|
88
|
+
|
89
|
+
* Do not die when implicit SSL connection disconnects (issue #13)
|
90
|
+
|
91
|
+
API Changes:
|
92
|
+
|
93
|
+
* Change default interface from "localhost" to "127.0.0.1".
|
94
|
+
|
95
|
+
### 0.9.0
|
96
|
+
|
97
|
+
Enhancements
|
98
|
+
|
99
|
+
* Added example showing ftp used as a test harness with rspec
|
100
|
+
* Ignore LIST/NLST switches such as "-a"
|
101
|
+
* Support IPV6
|
102
|
+
|
103
|
+
### 0.8.0
|
104
|
+
|
105
|
+
Administration
|
106
|
+
|
107
|
+
* Split Ruby 1.8 into separate branch
|
108
|
+
* Upgraded gems
|
109
|
+
|
110
|
+
### 0.7.0
|
111
|
+
|
112
|
+
Bug fixes
|
113
|
+
|
114
|
+
* Gracefully handle Errno::ENOTCONN during socket shutdown (fixes
|
115
|
+
gh-1)
|
116
|
+
|
117
|
+
### 0.6.0
|
118
|
+
|
119
|
+
Enhancements
|
120
|
+
|
121
|
+
* Configurable maximum connections (defaults to unlimited).
|
122
|
+
* Configurable maximum connections per IP (defaults to unlimited).
|
123
|
+
* Configurable disconnect after too many failed login attempts
|
124
|
+
(defaults to unlimited)
|
125
|
+
* Delay after failed login (configurable).
|
126
|
+
|
127
|
+
API Changes
|
128
|
+
|
129
|
+
* Changes to {Ftpd::FtpServer} attributes should now only be made
|
130
|
+
before calling #start. The effect of setting these attributes
|
131
|
+
after #start is undefined.
|
132
|
+
* Added {Ftpd::FtpServer#max_connections}
|
133
|
+
* Added {Ftpd::FtpServer#max_connections_per_ip}
|
134
|
+
* Added {Ftpd::FtpServer#max_failed_logins}
|
135
|
+
* Added {Ftpd::FtpServer#failed_login_delay}
|
136
|
+
* Support FEAT (feature list)
|
137
|
+
* Support OPTS (set options)
|
138
|
+
|
139
|
+
### 0.5.0
|
140
|
+
|
141
|
+
Bug fixes
|
142
|
+
|
143
|
+
* Replies are sent with the correct line ending ("\r\n" instead of
|
144
|
+
"\n")
|
145
|
+
* Do not hang on out-of-band commands.
|
146
|
+
* When data connection disconnects, send "426 Connection closed"
|
147
|
+
response instead of ending the session.
|
148
|
+
|
149
|
+
Enhancements
|
150
|
+
|
151
|
+
* Now unconditionally compliant
|
152
|
+
* Configurable session timeout (see {Ftpd::FtpServer#session_timeout}).
|
153
|
+
Defaults to 5 minutes.
|
154
|
+
* Disable Nagle algorithm on control connection to decrease latency.
|
155
|
+
This makes the tests run much faster.
|
156
|
+
* Support STAT (server status).
|
157
|
+
* Example has --timeout option for session idle timeout.
|
158
|
+
* Write log to Logger (see {Ftpd::FtpServer#log}).
|
159
|
+
* Disallow active-mode connections to privileged ports (configurable).
|
160
|
+
See RFC 2577 section 3.
|
161
|
+
* Added benchmarks.
|
162
|
+
* Support telnet sequences.
|
163
|
+
|
164
|
+
API Changes
|
165
|
+
|
166
|
+
* Added {Ftpd::FtpServer#server_name}
|
167
|
+
* Added {Ftpd::FtpServer#server_version}
|
168
|
+
* Removed #debug and #debug_path from Ftpd::FtpServer. They have been
|
169
|
+
replaced with #log
|
170
|
+
# Added {Ftpd::FtpServer#allow_low_data_ports}
|
171
|
+
|
172
|
+
### 0.4.0
|
173
|
+
|
174
|
+
Enhancements
|
175
|
+
|
176
|
+
* Improved driver and file-system documentation.
|
177
|
+
* Added {Ftpd::ReadOnlyDiskFileSystem read only disk file system}
|
178
|
+
* Example can be run with a read-only file system
|
179
|
+
* Supports three different levels of authentication:
|
180
|
+
* User
|
181
|
+
* User + Password
|
182
|
+
* User + Password + Account
|
183
|
+
* Added --auth switch to the example to select the authentication
|
184
|
+
level.
|
185
|
+
* Support APPE
|
186
|
+
* Support TYPE "A T" (ASCII/Telnet)
|
187
|
+
* Support TYPE "LOCAL 8"
|
188
|
+
* Added switches to example to set authentication values
|
189
|
+
* --user
|
190
|
+
* --password
|
191
|
+
* --account
|
192
|
+
|
193
|
+
API changes
|
194
|
+
|
195
|
+
* {Example::Driver#authenticate authenticate} now takes three
|
196
|
+
parameters (user, password, account). For compatability, it can be
|
197
|
+
defined to take only two, provided you are not doing account
|
198
|
+
authentication.
|
199
|
+
* Added {Ftpd::FtpServer#auth_level} option
|
200
|
+
* Added {Ftpd::DiskFileSystem::Append}
|
201
|
+
|
202
|
+
### 0.3.1
|
203
|
+
|
204
|
+
API changes
|
205
|
+
|
206
|
+
The file system interface for directory listing was completely
|
207
|
+
rewritten. It no longer shells out to ls, which removes potential
|
208
|
+
command injection security holes, and improves prospects for
|
209
|
+
portability.
|
210
|
+
|
211
|
+
* Removed Ftpd::DiskFileSystem::Ls
|
212
|
+
* Removed Ftpd::DiskFileSystem::NameList. NLIST now uses the
|
213
|
+
functions in {Ftpd::DiskFileSystem::List}.
|
214
|
+
* Removed Ftpd::DiskFileSystem::List#list. The formatting of
|
215
|
+
directory output is now done by ftpd, not by the file system driver.
|
216
|
+
* Added {Ftpd::DiskFileSystem::List#file_info}, used by LIST.
|
217
|
+
* Added {Ftpd::DiskFileSystem::List#dir}, used by LIST and NLST.
|
218
|
+
|
219
|
+
Bug fixes
|
220
|
+
|
221
|
+
* LIST and NLST support globs again.
|
222
|
+
* STOU (store unique) works in Ruby 1.8.7
|
223
|
+
|
224
|
+
Enhancements
|
225
|
+
|
226
|
+
* The output of the "LIST" command can be customized (see
|
227
|
+
{Ftpd::FtpServer#list_formatter})
|
228
|
+
|
229
|
+
### 0.2.2
|
230
|
+
|
231
|
+
Bug fixes
|
232
|
+
|
233
|
+
* Respond with sequence error if RNFR is not immediately followed by
|
234
|
+
RNTO
|
235
|
+
* Respond with sequence error if USER is not immediately followed by
|
236
|
+
PASS
|
237
|
+
* Open PASV mode data connection on same local IP as control connection.
|
238
|
+
This is required by RFC 1123.
|
239
|
+
* Disabled globbing in LIST (for now) due to a command (shell)
|
240
|
+
injection vulnerability. This patch also disables globbing in NLST,
|
241
|
+
but NLST probably shouldn't do globbing. Thanks to Larry Cashdollar
|
242
|
+
for the report.
|
243
|
+
|
244
|
+
Enhancements
|
245
|
+
|
246
|
+
* Support STOU (store unique)
|
247
|
+
* Support HELP
|
248
|
+
|
249
|
+
### 0.2.1
|
250
|
+
|
251
|
+
API changes
|
252
|
+
|
253
|
+
* Introduced PermanentFileSystemError and TransientFileSystemError exceptions.
|
254
|
+
* Deprecated FileSystemError (use PermanentFileSystemError instead).
|
255
|
+
* DiskFileSystem errors generate 550 responses, not 450
|
256
|
+
|
257
|
+
Enhancements
|
258
|
+
|
259
|
+
* Support MKD and XMKD (make directory)
|
260
|
+
* Support RMD and XRMD (remove directory)
|
261
|
+
* Support RNFR/RNTO (rename/move file/directory)
|
262
|
+
* Support XCUP (alias for CDUP)
|
263
|
+
* Support XPWD (alias for PWD)
|
264
|
+
* Support XCWD (alias for CWD)
|
265
|
+
* Test implicit TLS
|
266
|
+
|
267
|
+
Bug Fixes
|
268
|
+
|
269
|
+
* Passive mode transfers bind to the correct interface. They were
|
270
|
+
erroneously binding to the local interface, which kept passive mode
|
271
|
+
transfers from working when the client was on another machine.
|
272
|
+
* CDUP responds with syntax error if given an argument.
|
273
|
+
* RNTO checks that RNFM was called.
|
274
|
+
* Tests pass in Ruby 2.0.
|
275
|
+
|
276
|
+
### 0.2.0
|
277
|
+
|
278
|
+
API changes
|
279
|
+
|
280
|
+
* Renamed two of the file system methods:
|
281
|
+
|
282
|
+
* `list_long -> long`
|
283
|
+
* `list_short -> short`
|
284
|
+
|
285
|
+
This will affect anyone who has written their own disk system.
|
286
|
+
Anyone using Ftpd::DiskFileSystem won't notice this change.
|
287
|
+
|
288
|
+
Enhancements
|
289
|
+
|
290
|
+
* Some commands are now optional, depending upon the file system.
|
291
|
+
These are RETR, DELE, LIST and NLST. See the comments in
|
292
|
+
Ftpd::DiskFileSystem for what command depends upon what method.
|
293
|
+
* Better text in example's ephemeral README
|
294
|
+
* Divided the DiskFileSystem into mixins.
|
295
|
+
* Improved documentation.
|
296
|
+
* Support SYST
|
297
|
+
* Support ALLO
|
298
|
+
* Removed dead code
|
299
|
+
* Added more tests
|
300
|
+
|
301
|
+
### 0.1.1
|
302
|
+
|
303
|
+
Enhancements
|
304
|
+
|
305
|
+
* Improved documentation.
|
306
|
+
* Gemfile: development gems no longer lock down version
|
307
|
+
|
308
|
+
### 0.1.0
|
309
|
+
|
310
|
+
First usable release
|
data/Gemfile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
source 'http://rubygems.org'
|
2
|
+
|
3
|
+
gem 'memoizer', '~> 1.0'
|
4
|
+
|
5
|
+
group :development do
|
6
|
+
gem 'cucumber', '~> 1.3'
|
7
|
+
gem 'double-bag-ftps', '~> 0.1'
|
8
|
+
gem 'jeweler', '~> 2.0'
|
9
|
+
gem 'rake', '~> 10.3'
|
10
|
+
gem 'redcarpet', '~> 3.1'
|
11
|
+
gem 'rspec', '~> 3.1'
|
12
|
+
gem 'rspec-its', '~> 1.0'
|
13
|
+
gem 'timecop', '~> 0.7'
|
14
|
+
gem 'yard', '~> 0.8.7'
|
15
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
addressable (2.3.6)
|
5
|
+
builder (3.2.2)
|
6
|
+
cucumber (1.3.17)
|
7
|
+
builder (>= 2.1.2)
|
8
|
+
diff-lcs (>= 1.1.3)
|
9
|
+
gherkin (~> 2.12)
|
10
|
+
multi_json (>= 1.7.5, < 2.0)
|
11
|
+
multi_test (>= 0.1.1)
|
12
|
+
descendants_tracker (0.0.4)
|
13
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
14
|
+
diff-lcs (1.2.5)
|
15
|
+
double-bag-ftps (0.1.2)
|
16
|
+
faraday (0.9.0)
|
17
|
+
multipart-post (>= 1.2, < 3)
|
18
|
+
gherkin (2.12.2)
|
19
|
+
multi_json (~> 1.3)
|
20
|
+
git (1.2.8)
|
21
|
+
github_api (0.12.1)
|
22
|
+
addressable (~> 2.3)
|
23
|
+
descendants_tracker (~> 0.0.4)
|
24
|
+
faraday (~> 0.8, < 0.10)
|
25
|
+
hashie (>= 3.2)
|
26
|
+
multi_json (>= 1.7.5, < 2.0)
|
27
|
+
nokogiri (~> 1.6.3)
|
28
|
+
oauth2
|
29
|
+
hashie (3.3.1)
|
30
|
+
highline (1.6.21)
|
31
|
+
jeweler (2.0.1)
|
32
|
+
builder
|
33
|
+
bundler (>= 1.0)
|
34
|
+
git (>= 1.2.5)
|
35
|
+
github_api
|
36
|
+
highline (>= 1.6.15)
|
37
|
+
nokogiri (>= 1.5.10)
|
38
|
+
rake
|
39
|
+
rdoc
|
40
|
+
json (1.8.1)
|
41
|
+
jwt (1.0.0)
|
42
|
+
memoizer (1.0.1)
|
43
|
+
mini_portile (0.6.0)
|
44
|
+
multi_json (1.10.1)
|
45
|
+
multi_test (0.1.1)
|
46
|
+
multi_xml (0.5.5)
|
47
|
+
multipart-post (2.0.0)
|
48
|
+
nokogiri (1.6.3.1)
|
49
|
+
mini_portile (= 0.6.0)
|
50
|
+
oauth2 (1.0.0)
|
51
|
+
faraday (>= 0.8, < 0.10)
|
52
|
+
jwt (~> 1.0)
|
53
|
+
multi_json (~> 1.3)
|
54
|
+
multi_xml (~> 0.5)
|
55
|
+
rack (~> 1.2)
|
56
|
+
rack (1.5.2)
|
57
|
+
rake (10.3.2)
|
58
|
+
rdoc (4.1.2)
|
59
|
+
json (~> 1.4)
|
60
|
+
redcarpet (3.1.2)
|
61
|
+
rspec (3.1.0)
|
62
|
+
rspec-core (~> 3.1.0)
|
63
|
+
rspec-expectations (~> 3.1.0)
|
64
|
+
rspec-mocks (~> 3.1.0)
|
65
|
+
rspec-core (3.1.4)
|
66
|
+
rspec-support (~> 3.1.0)
|
67
|
+
rspec-expectations (3.1.2)
|
68
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
69
|
+
rspec-support (~> 3.1.0)
|
70
|
+
rspec-its (1.0.1)
|
71
|
+
rspec-core (>= 2.99.0.beta1)
|
72
|
+
rspec-expectations (>= 2.99.0.beta1)
|
73
|
+
rspec-mocks (3.1.2)
|
74
|
+
rspec-support (~> 3.1.0)
|
75
|
+
rspec-support (3.1.1)
|
76
|
+
thread_safe (0.3.4)
|
77
|
+
timecop (0.7.1)
|
78
|
+
yard (0.8.7.4)
|
79
|
+
|
80
|
+
PLATFORMS
|
81
|
+
ruby
|
82
|
+
|
83
|
+
DEPENDENCIES
|
84
|
+
cucumber (~> 1.3)
|
85
|
+
double-bag-ftps (~> 0.1)
|
86
|
+
jeweler (~> 2.0)
|
87
|
+
memoizer (~> 1.0)
|
88
|
+
rake (~> 10.3)
|
89
|
+
redcarpet (~> 3.1)
|
90
|
+
rspec (~> 3.1)
|
91
|
+
rspec-its (~> 1.0)
|
92
|
+
timecop (~> 0.7)
|
93
|
+
yard (~> 0.8.7)
|
data/LICENSE.md
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
Copyright 2012 Wayne Conrad
|
2
|
+
|
3
|
+
This software is distributed under the [MIT License](http://opensource.org/licenses/MIT):
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
6
|
+
|
7
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
8
|
+
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|