You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Sebb (JIRA)" <ji...@apache.org> on 2011/03/21 21:17:06 UTC

[jira] [Commented] (NET-291) enterLocalPassiveMode is set back to Active on connect

    [ https://issues.apache.org/jira/browse/NET-291?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13009346#comment-13009346 ] 

Sebb commented on NET-291:
--------------------------

Out of curiosity, I just tried the following with NET 1.0.0 and with NET 1.4.1:

{code}
FTPClient c = new FTPClient();
System.out.println("mode "+c.getDataConnectionMode());
c.enterLocalPassiveMode();
System.out.println("mode "+c.getDataConnectionMode());
c.connect(...);
System.out.println("mode "+c.getDataConnectionMode());
{code}

Output:

{noformat}
mode 0
mode 2
mode 0
{noformat}

AFAICT, this shows that the behaviour has always been this way (unless one of the intervening releases was different, but that seems very unlikely)

> enterLocalPassiveMode is set back to Active on connect
> ------------------------------------------------------
>
>                 Key: NET-291
>                 URL: https://issues.apache.org/jira/browse/NET-291
>             Project: Commons Net
>          Issue Type: Bug
>          Components: FTP
>    Affects Versions: 2.0
>            Reporter: Kevin Brown
>
> enterLocalPassiveMode (exhibit A) docs claim that mode will be set to PASSIVE_LOCAL_DATA_CONNECTION_MODE "some other method such as" enterLocalActiveMode is called  (exhibit B).  However, active mode is being entered after connect is called.   This behavior can be easily observed by modifying FtpExample by moving ftp.enterLocalPassiveMode()  to before ftp.connect(server).   
> Perhaps either the code or docs could be updated to remedy this.  Versions prior to 2.0 behaved as documented.
>  
> exhibit A:
>    /***
>      * Set the current data connection mode to
>      * <code> PASSIVE_LOCAL_DATA_CONNECTION_MODE </code>.  Use this
>      * method only for data transfers between the client and server.
>      * This method causes a PASV command to be issued to the server
>      * before the opening of every data connection, telling the server to
>      * open a data port to which the client will connect to conduct
>      * data transfers.  The FTPClient will stay in
>      * <code> PASSIVE_LOCAL_DATA_CONNECTION_MODE </code> until the
>      * mode is changed by calling some other method such as
>      * {@link #enterLocalActiveMode  enterLocalActiveMode() }
>      ***/
>     public void enterLocalPassiveMode()
>     {
>         __dataConnectionMode = PASSIVE_LOCAL_DATA_CONNECTION_MODE;
>         // These will be set when just before a data connection is opened
>         // in _openDataConnection_()
>         __passiveHost = null;
>         __passivePort = -1;
>     }
> exhibit B
>     @Override
>     protected void _connectAction_() throws IOException
>     {
>         super._connectAction_();
>         __initDefaults();
>     }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira