net.sf.hermesftp.cmd
Class AbstractFtpCmdPort

java.lang.Object
  extended by net.sf.hermesftp.cmd.AbstractFtpCmd
      extended by net.sf.hermesftp.cmd.AbstractFtpCmdPort
All Implemented Interfaces:
java.lang.Cloneable, FtpCmd, FtpConstants
Direct Known Subclasses:
FtpCmdEprt, FtpCmdPort

public abstract class AbstractFtpCmdPort
extends AbstractFtpCmd

Abstract super class of commands setting up the data channel in passive mode (PASV, EPSV).

Author:
Behnke

Field Summary
 
Fields inherited from interface net.sf.hermesftp.common.FtpConstants
ATTR_CLIENT_NAME, ATTR_DATA_PROT, ATTR_FILE_OFFSET, ATTR_FORCE_UTF8, ATTR_GROUP_DATA, ATTR_LOGIN_TIME, ATTR_RENAME_FILE, ATTR_RESTART_MARKERS, ATTR_SSL, ATTR_USER_DATA, BYTE_LENGTH, BYTE_MASK, DEFAULT_BEAN_RES, DEFAULT_KEYSTORE, DEFAULT_KEYSTORE_PASS, DT_ASCII, DT_BINARY, DT_EBCDIC, HERMES_HOME, MILLI, MODE_BLOCK, MODE_COMPRESS, MODE_STREAM, MODE_ZIP, MSG_GOODBYE, MSG150, MSG200, MSG200_NOTED, MSG200_PBSZ, MSG200_SIZE, MSG200_TYPE, MSG202, MSG211_FEAT_ENTRY, MSG211_FEAT_FOOTER, MSG211_FEAT_HEADER, MSG211_STAT, MSG213_SIZE, MSG213_TIME, MSG214, MSG220, MSG220_WEL, MSG226, MSG227, MSG229, MSG230, MSG234, MSG250, MSG257, MSG331, MSG350, MSG350_REST, MSG421, MSG425, MSG426, MSG431, MSG450, MSG451, MSG500, MSG500_CMD, MSG501, MSG501_PATH, MSG501_SIZE, MSG503, MSG503_USR, MSG504, MSG522, MSG530, MSG530_AUTH, MSG534, MSG536, MSG550, MSG550_COMM, MSG550_EXISTS, MSG550_MSG, MSG550_NOTEMPTY, MSG550_PERM, MSG553, OPT_ALLOWED_PASSIVE_PORTS, OPT_BUFFER_SIZE, OPT_CHARSET_ASCII, OPT_CHARSET_EBCDIC, OPT_EMULATE_UNIX, OPT_FTP_PORT, OPT_IPV4_BLACK_LIST, OPT_IPV6_BLACK_LIST, OPT_MAX_CONNECTIONS, OPT_MAX_DOWNLOAD_RATE, OPT_MAX_IDLE_SECONDS, OPT_MAX_UPLOAD_RATE, OPT_MSG_GOODBYE, OPT_MSG_WELCOME, OPT_REMOTE_DIR, OPT_SSL_ALLOW_EXPLICIT, OPT_SSL_ALLOW_IMPLICIT, OPT_SSL_CIPHER_SUITES, OPT_SSL_FORCE, OPT_SSL_KEYSTORE_FILE, OPT_SSL_KEYSTORE_PASS, OPT_SSL_PORT_IMPLICIT, PRIV_NONE, PRIV_READ, PRIV_READ_WRITE, PRIV_WRITE, PWD, SEPARATOR, SERVER_STATUS_HALTED, SERVER_STATUS_INIT, SERVER_STATUS_READY, SERVER_STATUS_UNDEF, SPACE, STAT_BYTES_DOWNLOADED, STAT_BYTES_UPLOADED, STAT_DOWNLOAD_RATE, STAT_FILES_DOWNLOADED, STAT_FILES_UPLOADED, STAT_UPLOAD_RATE, STRUCT_FILE, STRUCT_RECORD, TYPE_NAMES, WILDCARD
 
Constructor Summary
AbstractFtpCmdPort()
           
 
Method Summary
protected abstract  java.lang.String doReadIPAddr(java.lang.String args)
          Reads the IPv4 or IPv6 compliant address from the passed arguments.
protected abstract  int doReadPort(java.lang.String args)
          Reads port from passed arguments.
protected abstract  int doReadProtocolIdx(java.lang.String args)
          Reads the protocol index (1=IPv4, 2=IPv6) from the passed arguments.
 void execute()
          Executes the command.
 boolean isAuthenticationRequired()
          Returns whether authentication is needed or not.
protected  void setupDataChannel(int protocolIdx, java.lang.String ipAddr, int port)
          Sets up the data channel in active transfer mode.
 
Methods inherited from class net.sf.hermesftp.cmd.AbstractFtpCmd
getAbsPath, getAndResetFileOffset, getArguments, getCtx, getPathArg, getPermission, getToken, handleAsyncCmd, isResponded, msg, msg, msg, msgOut, msgOut, msgOut, out, setArguments, setCtx, setToken
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.hermesftp.cmd.FtpCmd
getHelp
 

Constructor Detail

AbstractFtpCmdPort

public AbstractFtpCmdPort()
Method Detail

execute

public void execute()
             throws FtpCmdException
Executes the command.

Throws:
FtpCmdException - Thrown on any exception occuring while the command is executed.

setupDataChannel

protected void setupDataChannel(int protocolIdx,
                                java.lang.String ipAddr,
                                int port)
                         throws java.io.IOException
Sets up the data channel in active transfer mode. IPv4 and IPv6 are supported.

Parameters:
protocolIdx - Protocol index (IPv4 or IPv6)
ipAddr - IPv4 or IPv6 compliant address.
port - The port.
Throws:
java.io.IOException - Setting up data channel failed.

isAuthenticationRequired

public boolean isAuthenticationRequired()
Returns whether authentication is needed or not.

Returns:
True, if the command requires authentication.

doReadPort

protected abstract int doReadPort(java.lang.String args)
Reads port from passed arguments.

Parameters:
args - The arguments.
Returns:
The port.

doReadIPAddr

protected abstract java.lang.String doReadIPAddr(java.lang.String args)
Reads the IPv4 or IPv6 compliant address from the passed arguments.

Parameters:
args - The arguments.
Returns:
The IP address.

doReadProtocolIdx

protected abstract int doReadProtocolIdx(java.lang.String args)
Reads the protocol index (1=IPv4, 2=IPv6) from the passed arguments.

Parameters:
args - The arguments.
Returns:
The protocol index.


Copyright © 2005-2007 Lars Behnke. All Rights Reserved.