Uploaded image for project: 'Commons Net'
  1. Commons Net
  2. NET-337

Support for Extended Passive Mode

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0
    • 2.2
    • FTP
    • None
    • all

    Description

      Extended Passive Mode (ESPV) is not supported yet in the current library.

      Adding support for it will enable this library to use it to connect ot servers behind routers that are incorrectly configured to use PASV.

      I dont know if I should try to place a patch as I am on doubt on what the right approach should be:

      a) Create a new EXTENDED_PASSIVE_LOCAL_DATA_CONNECTION_MODE connection mode
      This would probably fulfill the actual requirement, but would also require multiple changes across to support the EPSV command and its result as well.

      b) create a public property "ignorePassiveHost" that can be used in FTPClient# __parsePassiveModeReply() as follows
      if(__ignorePassiveHost)

      { __passiveHost = getRemoteAddress().getHostAddress(); }

      else

      { __passiveHost = parts[0] + '.' + parts[1] + '.' + parts[2] + '.' + parts[3]; }

      c) externalize (as a protected method) the call to create socket in FTPClient#openDataConnection to a protected method "createSocket)
      This would allow user code to override the default connection behavior to accomplish a similar functionality.

      d) make __parsePassiveModeReply a protected method and also add a protected method for setting the value on __passiveHost
      This would allow user code to override the default behavior to accomplish a similar functionality.

      Thanks for any comments / work on this.

      I can submit a patch on any of these options if you need me to.

      Attachments

        Activity

          People

            Unassigned Unassigned
            csilva Carlos Silva A.
            Votes:
            2 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: