Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: dorra/ftpd
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: wconrad/ftpd
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Can’t automatically merge. Don’t worry, you can still create the pull request.

Commits on Sep 14, 2013

  1. Copy the full SHA
    21b7679 View commit details
  2. Copy the full SHA
    d1f1671 View commit details
  3. Fix busted link in README

    wconrad committed Sep 14, 2013
    Copy the full SHA
    b802a25 View commit details
  4. Upgrade yard gem

    wconrad committed Sep 14, 2013
    Copy the full SHA
    9867ba0 View commit details
  5. Upgrade rspec gem

    wconrad committed Sep 14, 2013
    Copy the full SHA
    17457ad View commit details
  6. Update rake gem

    wconrad committed Sep 14, 2013
    Copy the full SHA
    1dc9148 View commit details
  7. Update cucumber gem

    wconrad committed Sep 14, 2013
    Copy the full SHA
    4900b98 View commit details
  8. Update jeweler gem

    wconrad committed Sep 14, 2013
    Copy the full SHA
    73c3103 View commit details

Commits on Sep 15, 2013

  1. Copy the full SHA
    7706094 View commit details
  2. Copy the full SHA
    4515d0c View commit details
  3. Revert jeweler to 1.8.4

    jeweler 1.8.4 through 1.8.7 don't work with the latest version of the
    git gem.  Specifically, version bumping generates a stack trace.  See:
    
        technicalpickles/jeweler#245
    wconrad committed Sep 15, 2013
    Copy the full SHA
    037c837 View commit details
  4. Copy the full SHA
    0fceda0 View commit details
  5. Update redcarpet gem

    wconrad committed Sep 15, 2013
    Copy the full SHA
    6ddf24b View commit details
  6. Update timecop gem

    wconrad committed Sep 15, 2013
    Copy the full SHA
    f13fe9a View commit details
  7. Updated README for 0.8.0

    wconrad committed Sep 15, 2013
    Copy the full SHA
    3e5070b View commit details
  8. Version bump to 0.8.0

    wconrad committed Sep 15, 2013
    Copy the full SHA
    4c1904c View commit details
  9. Copy the full SHA
    568706d View commit details
  10. Copy the full SHA
    9c989bb View commit details
  11. Copy the full SHA
    841d5ea View commit details
  12. Copy the full SHA
    7a49a86 View commit details
  13. Copy the full SHA
    094cfa5 View commit details
  14. Copy the full SHA
    7b1adec View commit details

Commits on Sep 27, 2013

  1. Copy the full SHA
    195b319 View commit details
  2. Copy the full SHA
    fff6c27 View commit details
  3. Copy the full SHA
    0aef4be View commit details

Commits on Sep 28, 2013

  1. Add RSpec example using Ftpd in specs

    bsodmike authored and wconrad committed Sep 28, 2013
    Copy the full SHA
    b0e205e View commit details
  2. Copy the full SHA
    a5857cb View commit details
  3. Add documentation to spec

    bsodmike authored and wconrad committed Sep 28, 2013
    Copy the full SHA
    90b1e02 View commit details
  4. Copy the full SHA
    ca82f85 View commit details
  5. Copy the full SHA
    ac964ed View commit details
  6. Move example_spec into its own folder

    bsodmike authored and wconrad committed Sep 28, 2013
    Copy the full SHA
    e8b1a2d View commit details
  7. Fix paths due to file being moved

    bsodmike authored and wconrad committed Sep 28, 2013
    Copy the full SHA
    45912b6 View commit details
  8. Copy the full SHA
    520f6ca View commit details
  9. Copy the full SHA
    d3f9dbb View commit details
  10. Copy the full SHA
    48eff3f View commit details
  11. Copy the full SHA
    a17c1c9 View commit details
  12. Copy the full SHA
    36869f9 View commit details
  13. Copy the full SHA
    94f8e34 View commit details
  14. Copy the full SHA
    533cb89 View commit details
  15. Copy the full SHA
    960487b View commit details
  16. Copy the full SHA
    42a8979 View commit details
  17. Copy the full SHA
    682b445 View commit details
  18. example_spec: Simplified spec

    wconrad committed Sep 28, 2013
    Copy the full SHA
    7472a70 View commit details
  19. Copy the full SHA
    1ce71af View commit details
  20. Copy the full SHA
    78cbac2 View commit details
  21. Add contributors to README

    wconrad committed Sep 28, 2013
    Copy the full SHA
    ab6b2a2 View commit details
  22. Copy the full SHA
    5af1d04 View commit details
  23. Copy the full SHA
    f42ef07 View commit details
  24. Remove unnecessary comments in example_spec

    The spec itself is clear as it stands.
    bsodmike committed Sep 28, 2013
    Copy the full SHA
    540431c View commit details
  25. Merge pull request wconrad#9 from bsodmike/fix/update_example_spec

    Remove unnecessary comments in example_spec
    wconrad committed Sep 28, 2013
    Copy the full SHA
    fb219fc View commit details
Showing with 4,749 additions and 1,691 deletions.
  1. +3 −0 .gitignore
  2. +1 −0 .rspec
  3. +12 −0 .travis.yml
  4. +165 −0 Changelog.md
  5. +2 −14 Gemfile
  6. +53 −43 Gemfile.lock
  7. +125 −56 README.md
  8. +0 −1 VERSION
  9. +294 −0 bin/ftpdrb
  10. +43 −54 doc/benchmarks.md
  11. +6 −6 doc/rfc-compliance.md
  12. +47 −17 examples/example.rb
  13. +93 −0 examples/example_spec.rb
  14. +61 −0 examples/write_only.rb
  15. +2 −0 features/example/step_definitions/example_server.rb
  16. +1 −1 features/ftp_server/allo.feature
  17. +56 −0 features/ftp_server/eprt.feature
  18. +37 −0 features/ftp_server/epsv.feature
  19. +12 −0 features/ftp_server/features.feature
  20. +46 −0 features/ftp_server/get_ipv6.feature
  21. +9 −0 features/ftp_server/list.feature
  22. +53 −0 features/ftp_server/mdtm.feature
  23. +9 −0 features/ftp_server/name_list.feature
  24. +30 −0 features/ftp_server/pasv.feature
  25. +7 −1 features/ftp_server/port.feature
  26. +69 −0 features/ftp_server/size.feature
  27. +8 −6 features/ftp_server/step_definitions/logging.rb
  28. +10 −0 features/ftp_server/step_definitions/test_server.rb
  29. +2 −0 features/step_definitions/append.rb
  30. +3 −0 features/step_definitions/client.rb
  31. +4 −2 features/step_definitions/client_and_server_files.rb
  32. +6 −4 features/step_definitions/client_files.rb
  33. +2 −0 features/step_definitions/command.rb
  34. +14 −7 features/step_definitions/connect.rb
  35. +2 −0 features/step_definitions/delete.rb
  36. +4 −2 features/step_definitions/directory_navigation.rb
  37. +12 −2 features/step_definitions/error_replies.rb
  38. +4 −2 features/step_definitions/features.rb
  39. +2 −0 features/step_definitions/file_structure.rb
  40. +2 −0 features/step_definitions/generic_send.rb
  41. +2 −0 features/step_definitions/get.rb
  42. +6 −4 features/step_definitions/help.rb
  43. +2 −0 features/step_definitions/invalid_commands.rb
  44. +11 −0 features/step_definitions/ipv6.rb
  45. +2 −0 features/step_definitions/line_endings.rb
  46. +11 −9 features/step_definitions/list.rb
  47. +5 −3 features/step_definitions/login.rb
  48. +2 −0 features/step_definitions/mkdir.rb
  49. +2 −0 features/step_definitions/mode.rb
  50. +25 −0 features/step_definitions/mtime.rb
  51. +2 −0 features/step_definitions/noop.rb
  52. +2 −0 features/step_definitions/options.rb
  53. +7 −0 features/step_definitions/passive.rb
  54. +2 −0 features/step_definitions/pending.rb
  55. +2 −0 features/step_definitions/port.rb
  56. +2 −0 features/step_definitions/put.rb
  57. +2 −0 features/step_definitions/quit.rb
  58. +2 −0 features/step_definitions/rename.rb
  59. +2 −0 features/step_definitions/rmdir.rb
  60. +20 −11 features/step_definitions/server_files.rb
  61. +4 −2 features/step_definitions/server_title.rb
  62. +22 −0 features/step_definitions/size.rb
  63. +2 −0 features/step_definitions/status.rb
  64. +3 −1 features/step_definitions/success_replies.rb
  65. +5 −0 features/step_definitions/system.rb
  66. +4 −2 features/step_definitions/timing.rb
  67. +2 −0 features/step_definitions/type.rb
  68. +2 −0 features/support/env.rb
  69. +3 −1 features/support/example_server.rb
  70. +96 −23 features/support/test_client.rb
  71. +3 −1 features/support/test_file_templates.rb
  72. +35 −23 features/support/test_server.rb
  73. +8 −1 features/support/test_server_files.rb
  74. +67 −193 ftpd.gemspec
  75. +77 −28 lib/ftpd.rb
  76. +2 −0 lib/ftpd/auth_levels.rb
  77. +15 −0 lib/ftpd/cmd_abor.rb
  78. +22 −0 lib/ftpd/cmd_allo.rb
  79. +26 −0 lib/ftpd/cmd_appe.rb
  80. +23 −0 lib/ftpd/cmd_auth.rb
  81. +18 −0 lib/ftpd/cmd_cdup.rb
  82. +22 −0 lib/ftpd/cmd_cwd.rb
  83. +23 −0 lib/ftpd/cmd_dele.rb
  84. +25 −0 lib/ftpd/cmd_eprt.rb
  85. +32 −0 lib/ftpd/cmd_epsv.rb
  86. +46 −0 lib/ftpd/cmd_feat.rb
  87. +31 −0 lib/ftpd/cmd_help.rb
  88. +35 −0 lib/ftpd/cmd_list.rb
  89. +62 −0 lib/ftpd/cmd_login.rb
  90. +29 −0 lib/ftpd/cmd_mdtm.rb
  91. +25 −0 lib/ftpd/cmd_mkd.rb
  92. +29 −0 lib/ftpd/cmd_mode.rb
  93. +29 −0 lib/ftpd/cmd_nlst.rb
  94. +16 −0 lib/ftpd/cmd_noop.rb
  95. +16 −0 lib/ftpd/cmd_opts.rb
  96. +30 −0 lib/ftpd/cmd_pasv.rb
  97. +25 −0 lib/ftpd/cmd_pbsz.rb
  98. +30 −0 lib/ftpd/cmd_port.rb
  99. +36 −0 lib/ftpd/cmd_prot.rb
  100. +17 −0 lib/ftpd/cmd_pwd.rb
  101. +20 −0 lib/ftpd/cmd_quit.rb
  102. +15 −0 lib/ftpd/cmd_rein.rb
  103. +34 −0 lib/ftpd/cmd_rename.rb
  104. +15 −0 lib/ftpd/cmd_rest.rb
  105. +26 −0 lib/ftpd/cmd_retr.rb
  106. +24 −0 lib/ftpd/cmd_rmd.rb
  107. +15 −0 lib/ftpd/cmd_site.rb
  108. +31 −0 lib/ftpd/cmd_size.rb
  109. +15 −0 lib/ftpd/cmd_smnt.rb
  110. +17 −0 lib/ftpd/cmd_stat.rb
  111. +27 −0 lib/ftpd/cmd_stor.rb
  112. +27 −0 lib/ftpd/cmd_stou.rb
  113. +29 −0 lib/ftpd/cmd_stru.rb
  114. +18 −0 lib/ftpd/cmd_syst.rb
  115. +28 −0 lib/ftpd/cmd_type.rb
  116. +93 −0 lib/ftpd/command_handler.rb
  117. +53 −0 lib/ftpd/command_handler_factory.rb
  118. +62 −0 lib/ftpd/command_handlers.rb
  119. +82 −0 lib/ftpd/command_loop.rb
  120. +3 −1 lib/ftpd/command_sequence_checker.rb
  121. +2 −0 lib/ftpd/config.rb
  122. +2 −0 lib/ftpd/connection_throttle.rb
  123. +19 −43 lib/ftpd/connection_tracker.rb
  124. +123 −0 lib/ftpd/data_connection_helper.rb
  125. +44 −0 lib/ftpd/data_server_factory.rb
  126. +26 −0 lib/ftpd/data_server_factory/random_ephemeral_port.rb
  127. +37 −0 lib/ftpd/data_server_factory/specific_port_range.rb
  128. +42 −15 lib/ftpd/disk_file_system.rb
  129. +8 −14 lib/ftpd/error.rb
  130. +2 −0 lib/ftpd/exception_translator.rb
  131. +47 −10 lib/ftpd/exceptions.rb
  132. +2 −0 lib/ftpd/file_info.rb
  133. +0 −29 lib/ftpd/file_system_error_translator.rb
  134. +67 −0 lib/ftpd/file_system_helper.rb
  135. +74 −32 lib/ftpd/ftp_server.rb
  136. +41 −0 lib/ftpd/gets_peer_address.rb
  137. +2 −0 lib/ftpd/insecure_certificate.rb
  138. +2 −0 lib/ftpd/list_format/eplf.rb
  139. +2 −0 lib/ftpd/list_format/ls.rb
  140. +30 −0 lib/ftpd/list_path.rb
  141. +2 −0 lib/ftpd/null_logger.rb
  142. +62 −0 lib/ftpd/protocols.rb
  143. +0 −22 lib/ftpd/read_only_disk_file_system.rb
  144. +13 −0 lib/ftpd/release.rb
  145. +24 −2 lib/ftpd/server.rb
  146. +107 −725 lib/ftpd/session.rb
  147. +135 −0 lib/ftpd/session_config.rb
  148. +82 −0 lib/ftpd/stream.rb
  149. +41 −45 lib/ftpd/telnet.rb
  150. +3 −1 lib/ftpd/temp_dir.rb
  151. +24 −3 lib/ftpd/tls_server.rb
  152. +6 −3 lib/ftpd/translate_exceptions.rb
  153. +0 −25 rake_tasks/jeweler.rake
  154. +2 −0 rake_tasks/spec.rake
  155. +6 −2 rake_tasks/yard.rake
  156. +7 −5 spec/command_sequence_checker_spec.rb
  157. +17 −14 spec/connection_throttle_spec.rb
  158. +45 −74 spec/connection_tracker_spec.rb
  159. +102 −0 spec/data_server_factory_spec.rb
  160. +32 −27 spec/disk_file_system_spec.rb
  161. +2 −1 spec/exception_translator_spec.rb
  162. +5 −5 spec/file_info_spec.rb
  163. +0 −59 spec/file_system_error_translator_spec.rb
  164. +13 −0 spec/ftp_server_error_spec.rb
  165. +4 −5 spec/list_format/eplf_spec.rb
  166. +4 −4 spec/list_format/ls_spec.rb
  167. +21 −0 spec/list_path_spec.rb
  168. +2 −2 spec/null_logger_spec.rb
  169. +157 −0 spec/protocols_spec.rb
  170. +81 −0 spec/server_spec.rb
  171. +105 −0 spec/spec_helper.rb
  172. +2 −2 spec/telnet_spec.rb
  173. +1 −1 spec/translate_exceptions_spec.rb
  174. +17 −0 testlib/network.rb
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
*~
.DS_Store
*#
pkg/
doc-api/
.yardoc/
.bundle/
spec/examples.txt
1 change: 1 addition & 0 deletions .rspec
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--require spec_helper
12 changes: 12 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
language: ruby
rvm:
- 1.9.3
- 2.0
- 2.1
- 2.2
- 2.3
- 2.4
sudo: false
script: bundle exec rake test
dist: precise
install: "bundle install --jobs=3 --retry=3"
165 changes: 165 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,168 @@
This is the change log for the main branch of ftpd, which supports
Ruby 1.9 and greater. For ruby 1.8.7, please use the latest version
before 0.8.0.

### 2.1.0 2017-07-23

* Introduced Release::VERSION and Release::DATE constants
* Fixed all known warnings in tests and example

### 2.0.5 2017-07-23

* Fix DOS caused by fast socket disconnects (thanks iblue)
* Tests pass in Ruby 2.4

### 2.0.4 2017-07-17

* Fix gem description

### 2.0.3 2017-07-17

* Fix erroneous gem release date in gemspec

### 2.0.2 2017-07-17

* Fix high CPU use by bin/ftpdrb (#47)
* ftpdrb now runs from installed gem
* Fix tests hanging in ruby 2.1.7 through 2.1.10

### 2.0.1 2016-11-02

* Redact password in log (thanks ukolovda)

### 2.0.0 2016-06-01

Breaking changes:

* Freeze strings by default. This is an unlikely but potential
breaking change for users of Ruby >= 2.3.

Non-breaking changes

* Added option #nat_ip to configure the advertised IP for passive mode
connections.

* Added option #passive_ports to configure the port range for passive
mode server sockets.

### 1.1.1 (2014-11-22)

Administration

* Correct Changelog

### 1.1.0 (2014-11-22)

Features

* Added Server#exception_handler= (thanks akelmanson)
* Added Server#join (thanks akelmanson)

### 1.0.1

* Less strict gem dependencies

### 1.0.0

Administration

* Update gem versions
* Declare stability (v. 1.0.0)

### 0.17.0

This release is brought to you by Mike Ragalie. Thanks, Mike!

Features

* Streaming file transfers (issues #12 and #26)

API Changes

These breaking API changes are for streaming file transfers. Custom
file systems will notice these changes. Nobody else should.

* The FileSystemErrorTranslator has been removed. Instead, the file
system may raise FtpServerError with a message and an optional error
code.

* DiskFileSystem#write now takes an `Ftpd::Stream` object instead of a
`String`.

* DiskFileSystem#read expects to receive a block and yields an `IO`
object to the block.

### 0.16.0

Bug fixes

* Fix Errno::ENOTSOCK error in Ruby 2.1.2 (issue #25)

### 0.15.0

Bug fixes

* Ignore Errno::ENOTCONN on socket shutdown (issue #24)

Administration

* Remove examples/foo.rb (accidental commit)

### 0.14.0

Administration

* Remove markdown link (but leave its text) in package description

### 0.13.0

Administration

* Remove badges from package description

### 0.12.0

Bug fixes

* Fix Errno::EADDRINUSE when reusing port (issue #23)

### 0.11.0

Bug fixes

* Fix Bad file descriptor exception on stop (issue #20)
* CWD returns 250, not 257 (issue #18)

Enhancements

* MDTM command (issue #19)
* SIZE command (issue #19)

### 0.10.0

Bug fixes

* Do not die when implicit SSL connection disconnects (issue #13)

API Changes:

* Change default interface from "localhost" to "127.0.0.1".

### 0.9.0

Enhancements

* Added example showing ftp used as a test harness with rspec
* Ignore LIST/NLST switches such as "-a"
* Support IPV6

### 0.8.0

Administration

* Split Ruby 1.8 into separate branch
* Upgraded gems

### 0.7.0

Bug fixes
16 changes: 2 additions & 14 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,2 @@
source 'http://rubygems.org'

gem 'memoizer', '~> 1.0.1'

group :development do
gem 'cucumber'
gem 'double-bag-ftps', :git => 'git@github.com:wconrad/double-bag-ftps.git'
gem 'jeweler'
gem 'rake'
gem 'redcarpet'
gem 'rspec'
gem 'timecop'
gem 'yard'
end
source "https://rubygems.org"
gemspec
96 changes: 53 additions & 43 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,54 +1,64 @@
GIT
remote: git@github.com:wconrad/double-bag-ftps.git
revision: c546429689618e1757bb2dfe1fa35a386e7aebb2
PATH
remote: .
specs:
double-bag-ftps (0.1.0)
ftpd (2.1.0)
memoizer (~> 1.0)

GEM
remote: http://rubygems.org/
remote: https://rubygems.org/
specs:
builder (3.2.0)
cucumber (1.2.1)
builder (3.2.3)
cucumber (2.4.0)
builder (>= 2.1.2)
cucumber-core (~> 1.5.0)
cucumber-wire (~> 0.0.1)
diff-lcs (>= 1.1.3)
gherkin (~> 2.11.0)
json (>= 1.4.6)
diff-lcs (1.2.1)
gherkin (2.11.6)
json (>= 1.7.6)
git (1.2.5)
jeweler (1.8.4)
bundler (~> 1.0)
git (>= 1.2.5)
rake
rdoc
json (1.7.7)
memoizer (1.0.1)
rake (10.0.3)
rdoc (4.0.0)
json (~> 1.4)
redcarpet (2.2.2)
rspec (2.13.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
rspec-core (2.13.0)
rspec-expectations (2.13.0)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.13.0)
timecop (0.5.9.2)
yard (0.8.5.2)
gherkin (~> 4.0)
multi_json (>= 1.7.5, < 2.0)
multi_test (>= 0.1.2)
cucumber-core (1.5.0)
gherkin (~> 4.0)
cucumber-wire (0.0.1)
diff-lcs (1.3)
double-bag-ftps (0.1.4)
gherkin (4.1.3)
memoizer (1.0.3)
multi_json (1.12.1)
multi_test (0.1.2)
rake (11.3.0)
redcarpet (3.4.0)
rspec (3.6.0)
rspec-core (~> 3.6.0)
rspec-expectations (~> 3.6.0)
rspec-mocks (~> 3.6.0)
rspec-core (3.6.0)
rspec-support (~> 3.6.0)
rspec-expectations (3.6.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.6.0)
rspec-its (1.2.0)
rspec-core (>= 3.0.0)
rspec-expectations (>= 3.0.0)
rspec-mocks (3.6.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.6.0)
rspec-support (3.6.0)
timecop (0.9.1)
yard (0.8.7.6)

PLATFORMS
ruby

DEPENDENCIES
cucumber
double-bag-ftps!
jeweler
memoizer (~> 1.0.1)
rake
redcarpet
rspec
timecop
yard
cucumber (~> 2.0)
double-bag-ftps (~> 0.1, >= 0.1.4)
ftpd!
rake (~> 11.1)
redcarpet (~> 3.1)
rspec (~> 3.1)
rspec-its (~> 1.0)
timecop (~> 0.7)
yard (~> 0.8.7)

BUNDLED WITH
1.15.3
Loading