ftpd 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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