ftpd 0.5.0 → 0.6.0

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.
Files changed (76) hide show
  1. data/Changelog.md +25 -3
  2. data/Gemfile +0 -1
  3. data/Gemfile.lock +0 -5
  4. data/README.md +109 -51
  5. data/VERSION +1 -1
  6. data/doc/benchmarks.md +4 -3
  7. data/doc/references.md +1 -1
  8. data/doc/rfc-compliance.md +18 -18
  9. data/examples/example.rb +1 -0
  10. data/features/ftp_server/abort.feature +13 -0
  11. data/features/ftp_server/command_errors.feature +0 -12
  12. data/features/ftp_server/delay_after_failed_login.feature +23 -0
  13. data/features/ftp_server/disconnect_after_failed_logins.feature +25 -0
  14. data/features/ftp_server/features.feature +26 -0
  15. data/features/ftp_server/max_connections.feature +39 -0
  16. data/features/ftp_server/options.feature +17 -0
  17. data/features/ftp_server/put_tls.feature +1 -1
  18. data/features/ftp_server/reinitialize.feature +13 -0
  19. data/features/ftp_server/site.feature +13 -0
  20. data/features/ftp_server/status.feature +1 -2
  21. data/features/ftp_server/step_definitions/test_server.rb +20 -0
  22. data/features/ftp_server/structure_mount.feature +13 -0
  23. data/features/ftp_server/timeout.feature +3 -3
  24. data/features/step_definitions/append.rb +2 -2
  25. data/features/step_definitions/client.rb +19 -9
  26. data/features/step_definitions/client_and_server_files.rb +2 -2
  27. data/features/step_definitions/client_files.rb +4 -4
  28. data/features/step_definitions/command.rb +1 -1
  29. data/features/step_definitions/connect.rb +28 -5
  30. data/features/step_definitions/delete.rb +2 -2
  31. data/features/step_definitions/directory_navigation.rb +4 -4
  32. data/features/step_definitions/error_replies.rb +12 -0
  33. data/features/step_definitions/features.rb +21 -0
  34. data/features/step_definitions/file_structure.rb +2 -2
  35. data/features/step_definitions/generic_send.rb +1 -1
  36. data/features/step_definitions/get.rb +2 -2
  37. data/features/step_definitions/help.rb +1 -1
  38. data/features/step_definitions/invalid_commands.rb +2 -2
  39. data/features/step_definitions/list.rb +2 -2
  40. data/features/step_definitions/login.rb +3 -3
  41. data/features/step_definitions/mkdir.rb +1 -1
  42. data/features/step_definitions/mode.rb +2 -2
  43. data/features/step_definitions/options.rb +9 -0
  44. data/features/step_definitions/passive.rb +1 -1
  45. data/features/step_definitions/port.rb +1 -1
  46. data/features/step_definitions/put.rb +3 -3
  47. data/features/step_definitions/quit.rb +2 -2
  48. data/features/step_definitions/rename.rb +1 -1
  49. data/features/step_definitions/rmdir.rb +1 -1
  50. data/features/step_definitions/server_title.rb +12 -0
  51. data/features/step_definitions/status.rb +1 -9
  52. data/features/step_definitions/system.rb +1 -1
  53. data/features/step_definitions/timing.rb +19 -0
  54. data/features/step_definitions/type.rb +2 -2
  55. data/features/support/test_client.rb +62 -7
  56. data/features/support/test_server.rb +4 -0
  57. data/ftpd.gemspec +21 -9
  58. data/lib/ftpd.rb +4 -0
  59. data/lib/ftpd/command_sequence_checker.rb +4 -2
  60. data/lib/ftpd/config.rb +13 -0
  61. data/lib/ftpd/connection_throttle.rb +56 -0
  62. data/lib/ftpd/connection_tracker.rb +110 -0
  63. data/lib/ftpd/disk_file_system.rb +2 -2
  64. data/lib/ftpd/ftp_server.rb +118 -35
  65. data/lib/ftpd/server.rb +27 -3
  66. data/lib/ftpd/session.rb +84 -25
  67. data/lib/ftpd/tls_server.rb +11 -5
  68. data/rake_tasks/cucumber.rake +1 -0
  69. data/rake_tasks/jeweler.rake +1 -1
  70. data/spec/connection_throttle_spec.rb +96 -0
  71. data/spec/connection_tracker_spec.rb +126 -0
  72. data/spec/spec_helper.rb +1 -0
  73. metadata +22 -23
  74. data/config/cucumber.yml +0 -2
  75. data/features/step_definitions/stop_server.rb +0 -3
  76. data/features/step_definitions/timeout.rb +0 -11
@@ -3,6 +3,7 @@ unless $:.include?(File.dirname(__FILE__) + '/../lib')
3
3
  end
4
4
 
5
5
  require 'ftpd'
6
+ require 'stringio'
6
7
  require 'timecop'
7
8
  require 'tmpdir'
8
9
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ftpd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-10 00:00:00.000000000 Z
12
+ date: 2013-03-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: memoizer
@@ -59,22 +59,6 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: fuubar-cucumber
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
62
  - !ruby/object:Gem::Dependency
79
63
  name: jeweler
80
64
  requirement: !ruby/object:Gem::Requirement
@@ -172,7 +156,7 @@ dependencies:
172
156
  - !ruby/object:Gem::Version
173
157
  version: '0'
174
158
  description: ftpd is a pure Ruby FTP server library. It supports implicit and explicit
175
- TLS, passive and active mode, and is unconditionally complaint per RFC-1123. It
159
+ TLS, passive and active mode, and is unconditionally compliant per [RFC-1123][1]. It
176
160
  an be used as part of a test fixture or embedded in a program.
177
161
  email: wconrad@yagni.com
178
162
  executables: []
@@ -189,7 +173,6 @@ files:
189
173
  - README.md
190
174
  - Rakefile
191
175
  - VERSION
192
- - config/cucumber.yml
193
176
  - doc/benchmarks.md
194
177
  - doc/references.md
195
178
  - doc/rfc-compliance.md
@@ -199,13 +182,17 @@ files:
199
182
  - features/example/example.feature
200
183
  - features/example/read_only.feature
201
184
  - features/example/step_definitions/example_server.rb
185
+ - features/ftp_server/abort.feature
202
186
  - features/ftp_server/allo.feature
203
187
  - features/ftp_server/append.feature
204
188
  - features/ftp_server/cdup.feature
205
189
  - features/ftp_server/command_errors.feature
206
190
  - features/ftp_server/concurrent_sessions.feature
191
+ - features/ftp_server/delay_after_failed_login.feature
207
192
  - features/ftp_server/delete.feature
208
193
  - features/ftp_server/directory_navigation.feature
194
+ - features/ftp_server/disconnect_after_failed_logins.feature
195
+ - features/ftp_server/features.feature
209
196
  - features/ftp_server/file_structure.feature
210
197
  - features/ftp_server/get.feature
211
198
  - features/ftp_server/get_tls.feature
@@ -218,21 +205,26 @@ files:
218
205
  - features/ftp_server/login_auth_level_account.feature
219
206
  - features/ftp_server/login_auth_level_password.feature
220
207
  - features/ftp_server/login_auth_level_user.feature
208
+ - features/ftp_server/max_connections.feature
221
209
  - features/ftp_server/mkdir.feature
222
210
  - features/ftp_server/mode.feature
223
211
  - features/ftp_server/name_list.feature
224
212
  - features/ftp_server/name_list_tls.feature
225
213
  - features/ftp_server/noop.feature
214
+ - features/ftp_server/options.feature
226
215
  - features/ftp_server/port.feature
227
216
  - features/ftp_server/put.feature
228
217
  - features/ftp_server/put_tls.feature
229
218
  - features/ftp_server/put_unique.feature
230
219
  - features/ftp_server/quit.feature
220
+ - features/ftp_server/reinitialize.feature
231
221
  - features/ftp_server/rename.feature
232
222
  - features/ftp_server/rmdir.feature
223
+ - features/ftp_server/site.feature
233
224
  - features/ftp_server/status.feature
234
225
  - features/ftp_server/step_definitions/logging.rb
235
226
  - features/ftp_server/step_definitions/test_server.rb
227
+ - features/ftp_server/structure_mount.feature
236
228
  - features/ftp_server/syntax_errors.feature
237
229
  - features/ftp_server/syst.feature
238
230
  - features/ftp_server/timeout.feature
@@ -246,6 +238,7 @@ files:
246
238
  - features/step_definitions/delete.rb
247
239
  - features/step_definitions/directory_navigation.rb
248
240
  - features/step_definitions/error_replies.rb
241
+ - features/step_definitions/features.rb
249
242
  - features/step_definitions/file_structure.rb
250
243
  - features/step_definitions/generic_send.rb
251
244
  - features/step_definitions/get.rb
@@ -257,6 +250,7 @@ files:
257
250
  - features/step_definitions/mkdir.rb
258
251
  - features/step_definitions/mode.rb
259
252
  - features/step_definitions/noop.rb
253
+ - features/step_definitions/options.rb
260
254
  - features/step_definitions/passive.rb
261
255
  - features/step_definitions/pending.rb
262
256
  - features/step_definitions/port.rb
@@ -265,11 +259,11 @@ files:
265
259
  - features/step_definitions/rename.rb
266
260
  - features/step_definitions/rmdir.rb
267
261
  - features/step_definitions/server_files.rb
262
+ - features/step_definitions/server_title.rb
268
263
  - features/step_definitions/status.rb
269
- - features/step_definitions/stop_server.rb
270
264
  - features/step_definitions/success_replies.rb
271
265
  - features/step_definitions/system.rb
272
- - features/step_definitions/timeout.rb
266
+ - features/step_definitions/timing.rb
273
267
  - features/step_definitions/type.rb
274
268
  - features/support/env.rb
275
269
  - features/support/example_server.rb
@@ -285,6 +279,9 @@ files:
285
279
  - lib/ftpd.rb
286
280
  - lib/ftpd/auth_levels.rb
287
281
  - lib/ftpd/command_sequence_checker.rb
282
+ - lib/ftpd/config.rb
283
+ - lib/ftpd/connection_throttle.rb
284
+ - lib/ftpd/connection_tracker.rb
288
285
  - lib/ftpd/disk_file_system.rb
289
286
  - lib/ftpd/error.rb
290
287
  - lib/ftpd/exception_translator.rb
@@ -310,6 +307,8 @@ files:
310
307
  - rake_tasks/test.rake
311
308
  - rake_tasks/yard.rake
312
309
  - spec/command_sequence_checker_spec.rb
310
+ - spec/connection_throttle_spec.rb
311
+ - spec/connection_tracker_spec.rb
313
312
  - spec/disk_file_system_spec.rb
314
313
  - spec/exception_translator_spec.rb
315
314
  - spec/file_info_spec.rb
@@ -335,7 +334,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
335
334
  version: '0'
336
335
  segments:
337
336
  - 0
338
- hash: 824130867
337
+ hash: 371312525
339
338
  required_rubygems_version: !ruby/object:Gem::Requirement
340
339
  none: false
341
340
  requirements:
@@ -1,2 +0,0 @@
1
- ---
2
- default: --format Cucumber::Formatter::Fuubar
@@ -1,3 +0,0 @@
1
- After do
2
- @server.stop if @server
3
- end
@@ -1,11 +0,0 @@
1
- When /^the client is idle for (\S+) seconds$/ do |seconds|
2
- sleep seconds.to_f
3
- end
4
-
5
- Then /^the client is connected$/ do
6
- @client.should be_connected
7
- end
8
-
9
- Then /^the client is not connected$/ do
10
- @client.should_not be_connected
11
- end