You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ftpserver-commits@incubator.apache.org by ng...@apache.org on 2007/01/21 22:43:54 UTC
svn commit: r498472 [1/2] - in /incubator/ftpserver/trunk:
core/src/java/org/apache/ftpserver/
core/src/java/org/apache/ftpserver/command/
core/src/java/org/apache/ftpserver/interfaces/
core/src/java/org/apache/ftpserver/listener/ core/src/java/org/apa...
Author: ngn
Date: Sun Jan 21 14:43:52 2007
New Revision: 498472
URL: http://svn.apache.org/viewvc?view=rev&rev=498472
Log:
Moved reply translation out of FtpWriter into a dedicated factory.
Added:
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/interfaces/FtpServerSession.java (with props)
Modified:
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/ConfigurableFtpServerContext.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpResponseImpl.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpSessionImpl.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpWriter.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/ABOR.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/ACCT.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/APPE.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/AUTH.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/CDUP.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/CWD.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/DELE.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/EPRT.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/EPSV.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/FEAT.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/HELP.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/LANG.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/LIST.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MD5.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MDTM.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MKD.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MLSD.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MLST.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MODE.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/NLST.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/NOOP.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS_MLST.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS_UTF8.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PASS.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PASV.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PBSZ.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PORT.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PROT.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PWD.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/QUIT.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/REIN.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/REST.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/RETR.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/RMD.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/RNFR.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/RNTO.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/SITE.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/SITE_DESCUSER.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/SITE_HELP.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/SITE_STAT.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/SITE_WHO.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/SIZE.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/STAT.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/STOR.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/STOU.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/STRU.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/SYST.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/TYPE.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/USER.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/interfaces/FtpServerContext.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/listener/FtpProtocolHandler.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/listener/io/IOConnection.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/listener/io/IOFtpResponseOutput.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/listener/mina/MinaConnection.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/listener/mina/MinaFtpProtocolHandler.java
incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/socketfactory/SSLFtpSocketFactory.java
incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/command/AbstractCommandTestTemplate.java
incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/filesystem/NativeFileObjectTest.java
incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/ftplet/FtpLetContainerTestTemplate.java
incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/listing/DirectoryListerTest.java
incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/listing/LISTFileFormaterTest.java
incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/listing/ListArgumentParserTest.java
incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/listing/ListArgumentTest.java
incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/listing/MLSTFileFormaterTest.java
incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/listing/NLSTFileFormaterTest.java
incubator/ftpserver/trunk/core/src/test/org/apache/ftpserver/usermanager/BaseUserTest.java
incubator/ftpserver/trunk/ftplet-api/src/java/org/apache/ftpserver/ftplet/FtpSession.java
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/ConfigurableFtpServerContext.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/ConfigurableFtpServerContext.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/ConfigurableFtpServerContext.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/ConfigurableFtpServerContext.java Sun Jan 21 14:43:52 2007
@@ -49,8 +49,8 @@
import org.apache.ftpserver.socketfactory.FtpSocketFactory;
import org.apache.ftpserver.usermanager.BaseUser;
import org.apache.ftpserver.usermanager.ConcurrentLoginPermission;
-import org.apache.ftpserver.usermanager.TransferRatePermission;
import org.apache.ftpserver.usermanager.PropertiesUserManager;
+import org.apache.ftpserver.usermanager.TransferRatePermission;
import org.apache.ftpserver.usermanager.WritePermission;
/**
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpResponseImpl.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpResponseImpl.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpResponseImpl.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpResponseImpl.java Sun Jan 21 14:43:52 2007
@@ -54,7 +54,8 @@
* @see java.lang.Object#toString()
*/
public String toString() {
- String notNullMessage = message;
+ int code = getCode();
+ String notNullMessage = getMessage();
if(notNullMessage == null) {
notNullMessage = "";
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpSessionImpl.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpSessionImpl.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpSessionImpl.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpSessionImpl.java Sun Jan 21 14:43:52 2007
@@ -28,14 +28,15 @@
import org.apache.ftpserver.ftplet.FileObject;
import org.apache.ftpserver.ftplet.FileSystemView;
import org.apache.ftpserver.ftplet.FtpRequest;
-import org.apache.ftpserver.ftplet.FtpSession;
import org.apache.ftpserver.ftplet.Structure;
import org.apache.ftpserver.ftplet.User;
+import org.apache.ftpserver.interfaces.FtpServerContext;
+import org.apache.ftpserver.interfaces.FtpServerSession;
/**
* FTP session
*/
-public class FtpSessionImpl implements FtpSession {
+public class FtpSessionImpl implements FtpServerSession {
/**
@@ -45,6 +46,7 @@
private User user;
private HashMap attributeMap;
private InetAddress remoteAddr;
+ private InetAddress serverAddr;
private String language;
private Certificate[] clientCertificates;
@@ -62,11 +64,13 @@
private DataType dataType = DataType.ASCII;
private Structure structure = Structure.FILE;
+ private FtpServerContext serverContext;
/**
* Default constructor.
*/
- public FtpSessionImpl() {
+ public FtpSessionImpl(FtpServerContext serverContext) {
+ this.serverContext = serverContext;
attributeMap = new HashMap();
userArgument = null;
user = null;
@@ -352,5 +356,17 @@
public void setClientCertificates(Certificate[] certificates) {
this.clientCertificates = certificates;
+ }
+
+ public InetAddress getServerAddress() {
+ return serverAddr;
+ }
+
+ public void setServerAddress(InetAddress adress) {
+ this.serverAddr = adress;
+ }
+
+ public FtpServerContext getServerContext() {
+ return serverContext;
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpWriter.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpWriter.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpWriter.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/FtpWriter.java Sun Jan 21 14:43:52 2007
@@ -19,19 +19,9 @@
package org.apache.ftpserver;
-import java.io.IOException;
-import java.net.InetAddress;
-
import org.apache.commons.logging.Log;
-import org.apache.ftpserver.ftplet.FileSystemView;
-import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponseOutput;
-import org.apache.ftpserver.ftplet.FtpSession;
-import org.apache.ftpserver.ftplet.FtpStatistics;
-import org.apache.ftpserver.interfaces.FtpServerContext;
-import org.apache.ftpserver.interfaces.MessageResource;
import org.apache.ftpserver.listener.ConnectionObserver;
-import org.apache.ftpserver.util.DateUtils;
/**
* FTP response object. The server uses this to send server messages
@@ -40,67 +30,9 @@
*/
public abstract class FtpWriter implements FtpResponseOutput {
- ///////////////////////// All Server Vatiables /////////////////////////
- public static final String SERVER_IP = "server.ip";
- public static final String SERVER_PORT = "server.port";
-
- public static final String REQUEST_LINE = "request.line";
- public static final String REQUEST_CMD = "request.cmd";
- public static final String REQUEST_ARG = "request.arg";
-
- public static final String STAT_START_TIME = "stat.start.time";
-
- public static final String STAT_CON_TOTAL = "stat.con.total";
- public static final String STAT_CON_CURR = "stat.con.curr";
-
- public static final String STAT_LOGIN_TOTAL = "stat.login.total";
- public static final String STAT_LOGIN_CURR = "stat.login.curr";
-
- public static final String STAT_LOGIN_ANON_TOTAL = "stat.login.anon.total";
- public static final String STAT_LOGIN_ANON_CURR = "stat.login.anon.curr";
-
- public static final String STAT_FILE_UPLOAD_COUNT = "stat.file.upload.count";
- public static final String STAT_FILE_UPLOAD_BYTES = "stat.file.upload.bytes";
-
- public static final String STAT_FILE_DOWNLOAD_COUNT = "stat.file.download.count";
- public static final String STAT_FILE_DOWNLOAD_BYTES = "stat.file.download.bytes";
-
- public static final String STAT_FILE_DELETE_COUNT = "stat.file.delete.count";
-
- public static final String STAT_DIR_CREATE_COUNT = "stat.dir.create.count";
- public static final String STAT_DIR_DELETE_COUNT = "stat.dir.delete.count";
-
- public static final String OUTPUT_CODE = "output.code";
- public static final String OUTPUT_MSG = "output.msg";
-
- public static final String CLIENT_IP = "client.ip";
- public static final String CLIENT_CON_TIME = "client.con.time";
- public static final String CLIENT_LOGIN_NAME = "client.login.name";
- public static final String CLIENT_LOGIN_TIME = "client.login.time";
- public static final String CLIENT_ACCESS_TIME = "client.access.time";
- public static final String CLIENT_HOME = "client.home";
- public static final String CLIENT_DIR = "client.dir";
-
- /////////////////////////////////////////////////////////////////////////////
-
protected Log log;
private ConnectionObserver observer;
- private FtpServerContext serverContext;
- private FtpSession session;
- /**
- * Set ftp config.
- */
- public void setServerContext(FtpServerContext serverContext) {
- this.serverContext = serverContext;
- log = this.serverContext.getLogFactory().getInstance(getClass());
- }
-
- /**
- * Set ftp request.
- */
- public void setFtpSession(FtpSession session) {
- this.session = session;
- }
+
/**
* Get the observer object to get what the server response.
@@ -117,374 +49,6 @@
if(observer != null) {
observer.response(str);
}
- }
-
- /**
- * Generate and send ftp server response.
- */
- public void send(int code, String subId, String basicMsg) throws IOException {
- MessageResource resource = serverContext.getMessageResource();
- String lang = session.getLanguage();
-
- String msg = null;
- if(resource != null ) {
- msg = resource.getMessage(code, subId, lang);
- }
- if(msg == null) {
- log.error("Message not found : " + code + ',' + subId + ',' + lang);
- msg = "";
- }
- msg = replaceVariables(code, basicMsg, msg);
-
- write(new FtpResponseImpl(code, msg));
- }
-
- /**
- * Replace server variables.
- */
- private String replaceVariables(int code, String basicMsg, String str) {
-
- int startIndex = 0;
- int openIndex = str.indexOf('{', startIndex);
- if (openIndex == -1) {
- return str;
- }
-
- int closeIndex = str.indexOf('}', startIndex);
- if( (closeIndex == -1) || (openIndex > closeIndex) ) {
- return str;
- }
-
- StringBuffer sb = new StringBuffer(128);
- sb.append(str.substring(startIndex, openIndex));
- while(true) {
- String varName = str.substring(openIndex+1, closeIndex);
- sb.append( getVariableValue(code, basicMsg, varName) );
-
- startIndex = closeIndex + 1;
- openIndex = str.indexOf('{', startIndex);
- if (openIndex == -1) {
- sb.append(str.substring(startIndex));
- break;
- }
-
- closeIndex = str.indexOf('}', startIndex);
- if( (closeIndex == -1) || (openIndex > closeIndex) ) {
- sb.append(str.substring(startIndex));
- break;
- }
- sb.append(str.substring(startIndex, openIndex));
- }
- return sb.toString();
- }
-
- /**
- * Get the variable value.
- */
- private String getVariableValue(int code, String basicMsg, String varName) {
-
- String varVal = null;
-
- // all output variables
- if(varName.startsWith("output.")) {
- varVal = getOutputVariableValue(code, basicMsg, varName);
- }
-
- // all server variables
- else if(varName.startsWith("server.")) {
- varVal = getServerVariableValue(varName);
- }
-
- // all request variables
- else if(varName.startsWith("request.")) {
- varVal = getRequestVariableValue(varName);
- }
-
- // all statistical variables
- else if(varName.startsWith("stat.")) {
- varVal = getStatisticalVariableValue(varName);
- }
-
- // all client variables
- else if(varName.startsWith("client.")) {
- varVal = getClientVariableValue(varName);
- }
-
- if(varVal == null) {
- varVal = "";
- }
- return varVal;
- }
-
- protected abstract InetAddress getFallbackServerAddress();
-
- /**
- * Get server variable value.
- */
- private String getServerVariableValue(String varName) {
-
- String varVal = null;
-
- // server address
- if(varName.equals(SERVER_IP)) {
- InetAddress addr = serverContext.getDataConnectionConfig().getPassiveAddress();
- if(addr == null) {
- addr = getFallbackServerAddress();
- }
- if(addr != null) {
- varVal = addr.getHostAddress();
- }
- }
-
- // server port
- else if(varName.equals(SERVER_PORT)) {
- varVal = String.valueOf(serverContext.getServerPort());
- }
-
- return varVal;
- }
-
- /**
- * Get request variable value.
- */
- private String getRequestVariableValue(String varName) {
-
- String varVal = null;
-
- FtpRequest request = session.getCurrentRequest();
-
- if(request == null) {
- return "";
- }
-
- // request line
- if(varName.equals(REQUEST_LINE)) {
- varVal = request.getRequestLine();
- }
-
- // request command
- else if(varName.equals(REQUEST_CMD)) {
- varVal = request.getCommand();
- }
-
- // request argument
- else if(varName.equals(REQUEST_ARG)) {
- varVal = request.getArgument();
- }
-
- return varVal;
- }
-
- /**
- * Get statistical variable value.
- */
- private String getStatisticalVariableValue(String varName) {
-
- String varVal = null;
- FtpStatistics stat = serverContext.getFtpStatistics();
-
- // server start time
- if(varName.equals(STAT_START_TIME)) {
- varVal = DateUtils.getISO8601Date(stat.getStartTime().getTime());
- }
-
- // connection statistical variables
- else if(varName.startsWith("stat.con")) {
- varVal = getStatisticalConnectionVariableValue(varName);
- }
-
- // login statistical variables
- else if(varName.startsWith("stat.login.")) {
- varVal = getStatisticalLoginVariableValue(varName);
- }
-
- // file statistical variable
- else if(varName.startsWith("stat.file")) {
- varVal = getStatisticalFileVariableValue(varName);
- }
-
- // directory statistical variable
- else if(varName.startsWith("stat.dir.")) {
- varVal = getStatisticalDirectoryVariableValue(varName);
- }
-
- return varVal;
- }
-
- /**
- * Get statistical connection variable value.
- */
- private String getStatisticalConnectionVariableValue(String varName) {
- String varVal = null;
- FtpStatistics stat = serverContext.getFtpStatistics();
-
- // total connection number
- if(varName.equals(STAT_CON_TOTAL)) {
- varVal = String.valueOf(stat.getTotalConnectionNumber());
- }
-
- // current connection number
- else if(varName.equals(STAT_CON_CURR)) {
- varVal = String.valueOf(stat.getCurrentConnectionNumber());
- }
-
- return varVal;
- }
-
- /**
- * Get statistical login variable value.
- */
- private String getStatisticalLoginVariableValue(String varName) {
- String varVal = null;
- FtpStatistics stat = serverContext.getFtpStatistics();
-
- // total login number
- if(varName.equals(STAT_LOGIN_TOTAL)) {
- varVal = String.valueOf(stat.getTotalLoginNumber());
- }
-
- // current login number
- else if(varName.equals(STAT_LOGIN_CURR)) {
- varVal = String.valueOf(stat.getCurrentLoginNumber());
- }
-
- // total anonymous login number
- else if(varName.equals(STAT_LOGIN_ANON_TOTAL)) {
- varVal = String.valueOf(stat.getTotalAnonymousLoginNumber());
- }
-
- // current anonymous login number
- else if(varName.equals(STAT_LOGIN_ANON_CURR)) {
- varVal = String.valueOf(stat.getCurrentAnonymousLoginNumber());
- }
-
- return varVal;
- }
-
- /**
- * Get statistical file variable value.
- */
- private String getStatisticalFileVariableValue(String varName) {
- String varVal = null;
- FtpStatistics stat = serverContext.getFtpStatistics();
-
- // total number of file upload
- if(varName.equals(STAT_FILE_UPLOAD_COUNT)) {
- varVal = String.valueOf(stat.getTotalUploadNumber());
- }
-
- // total bytes uploaded
- else if(varName.equals(STAT_FILE_UPLOAD_BYTES)) {
- varVal = String.valueOf(stat.getTotalUploadSize());
- }
-
- // total number of file download
- else if(varName.equals(STAT_FILE_DOWNLOAD_COUNT)) {
- varVal = String.valueOf(stat.getTotalDownloadNumber());
- }
-
- // total bytes downloaded
- else if(varName.equals(STAT_FILE_DOWNLOAD_BYTES)) {
- varVal = String.valueOf(stat.getTotalDownloadSize());
- }
-
- // total number of files deleted
- else if(varName.equals(STAT_FILE_DELETE_COUNT)) {
- varVal = String.valueOf(stat.getTotalDeleteNumber());
- }
-
- return varVal;
- }
-
- /**
- * Get statistical directory variable value.
- */
- private String getStatisticalDirectoryVariableValue(String varName) {
- String varVal = null;
- FtpStatistics stat = serverContext.getFtpStatistics();
-
- // total directory created
- if(varName.equals(STAT_DIR_CREATE_COUNT)) {
- varVal = String.valueOf(stat.getTotalDirectoryCreated());
- }
-
- // total directory removed
- else if(varName.equals(STAT_DIR_DELETE_COUNT)) {
- varVal = String.valueOf(stat.getTotalDirectoryRemoved());
- }
-
- return varVal;
- }
-
- /**
- * Get output variable value.
- */
- private String getOutputVariableValue(int code, String basicMsg, String varName) {
- String varVal = null;
-
- // output code
- if(varName.equals(OUTPUT_CODE)) {
- varVal = String.valueOf(code);
- }
-
- // output message
- else if(varName.equals(OUTPUT_MSG)) {
- varVal = basicMsg;
- }
-
- return varVal;
- }
-
- /**
- * Get client variable value.
- */
- private String getClientVariableValue(String varName) {
-
- String varVal = null;
-
- // client ip
- if(varName.equals(CLIENT_IP)) {
- varVal = session.getClientAddress().getHostAddress();
- }
-
- // client connection time
- else if(varName.equals(CLIENT_CON_TIME)) {
- varVal = DateUtils.getISO8601Date(session.getConnectionTime().getTime());
- }
-
- // client login name
- else if(varName.equals(CLIENT_LOGIN_NAME)) {
- varVal = session.getUserArgument();
- }
-
- // client login time
- else if(varName.equals(CLIENT_LOGIN_TIME)) {
- varVal = DateUtils.getISO8601Date(session.getLoginTime().getTime());
- }
-
- // client last access time
- else if(varName.equals(CLIENT_ACCESS_TIME)) {
- varVal = DateUtils.getISO8601Date(session.getLastAccessTime().getTime());
- }
-
- // client home
- else if(varName.equals(CLIENT_HOME)) {
- varVal = session.getUser().getHomeDirectory();
- }
-
- // client directory
- else if(varName.equals(CLIENT_DIR)) {
- FileSystemView fsView = session.getFileSystemView();
- if(fsView != null) {
- try {
- varVal = fsView.getCurrentDirectory().getFullName();
- }
- catch(Exception ex) {
- log.debug("Exception getting name of file object", ex);
- }
- }
- }
- return varVal;
}
public abstract void close();
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/ABOR.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/ABOR.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/ABOR.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/ABOR.java Sun Jan 21 14:43:52 2007
@@ -26,6 +26,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>ABOR <CRLF></code><br>
@@ -57,6 +58,6 @@
// and abort any data connection
session.getFtpDataConnection().closeDataSocket();
- out.send(FtpResponse.REPLY_226_CLOSING_DATA_CONNECTION, "ABOR", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_226_CLOSING_DATA_CONNECTION, "ABOR", null));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/ACCT.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/ACCT.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/ACCT.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/ACCT.java Sun Jan 21 14:43:52 2007
@@ -26,6 +26,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>ACCT <CRLF></code><br>
@@ -50,7 +51,7 @@
session.resetState();
// and abort any data connection
- out.send(FtpResponse.REPLY_202_COMMAND_NOT_IMPLEMENTED, "ACCT", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_202_COMMAND_NOT_IMPLEMENTED, "ACCT", null));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/APPE.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/APPE.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/APPE.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/APPE.java Sun Jan 21 14:43:52 2007
@@ -36,6 +36,7 @@
import org.apache.ftpserver.interfaces.FtpServerContext;
import org.apache.ftpserver.interfaces.ServerFtpStatistics;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
import org.apache.ftpserver.util.IoUtils;
/**
@@ -70,7 +71,7 @@
// argument check
String fileName = request.getArgument();
if(fileName == null) {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "APPE", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "APPE", null));
return;
}
@@ -100,32 +101,32 @@
log.debug("File system threw exception", e);
}
if(file == null) {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "APPE.invalid", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "APPE.invalid", fileName));
return;
}
fileName = file.getFullName();
// check file existance
if(file.doesExist() && !file.isFile()) {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "APPE.invalid", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "APPE.invalid", fileName));
return;
}
// check permission
if( !file.hasWritePermission()) {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "APPE.permission", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "APPE.permission", fileName));
return;
}
// get data connection
- out.send(FtpResponse.REPLY_150_FILE_STATUS_OKAY, "APPE", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_150_FILE_STATUS_OKAY, "APPE", fileName));
FtpDataConnection dataConnection;
try {
dataConnection = session.getFtpDataConnection().openConnection();
} catch (Exception e) {
log.debug("Exception when getting data input stream", e);
- out.send(FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "APPE", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "APPE", fileName));
return;
}
@@ -158,12 +159,12 @@
catch(SocketException e) {
log.debug("SocketException during file upload", e);
failure = true;
- out.send(FtpResponse.REPLY_426_CONNECTION_CLOSED_TRANSFER_ABORTED, "APPE", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_426_CONNECTION_CLOSED_TRANSFER_ABORTED, "APPE", fileName));
}
catch(IOException e) {
log.debug("IOException during file upload", e);
failure = true;
- out.send(FtpResponse.REPLY_551_REQUESTED_ACTION_ABORTED_PAGE_TYPE_UNKNOWN, "APPE", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_551_REQUESTED_ACTION_ABORTED_PAGE_TYPE_UNKNOWN, "APPE", fileName));
}
finally {
IoUtils.close(os);
@@ -171,7 +172,7 @@
// if data transfer ok - send transfer complete message
if(!failure) {
- out.send(FtpResponse.REPLY_226_CLOSING_DATA_CONNECTION, "APPE", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_226_CLOSING_DATA_CONNECTION, "APPE", fileName));
// call Ftplet.onAppendEnd() method
try {
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/AUTH.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/AUTH.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/AUTH.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/AUTH.java Sun Jan 21 14:43:52 2007
@@ -29,6 +29,7 @@
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.interfaces.FtpServerContext;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* This server supports explicit SSL support.
@@ -52,7 +53,7 @@
// argument check
if(!request.hasArgument()) {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "AUTH", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "AUTH", null));
return;
}
@@ -60,7 +61,7 @@
FtpServerContext serverContext = connection.getServerContext();
Log log = serverContext.getLogFactory().getInstance(getClass());
if(serverContext.getSocketFactory().getSSL() == null) {
- out.send(431, "AUTH", null);
+ out.write(FtpReplyUtil.translate(session, 431, "AUTH", null));
return;
}
@@ -69,7 +70,7 @@
if(authType.equals("SSL")) {
try {
connection.beforeSecureControlChannel("SSL");
- out.send(234, "AUTH.SSL", null);
+ out.write(FtpReplyUtil.translate(session, 234, "AUTH.SSL", null));
connection.afterSecureControlChannel("SSL");
} catch(FtpException ex) {
throw ex;
@@ -81,7 +82,7 @@
else if(authType.equals("TLS")) {
try {
connection.beforeSecureControlChannel("TLS");
- out.send(234, "AUTH.TLS", null);
+ out.write(FtpReplyUtil.translate(session, 234, "AUTH.TLS", null));
connection.afterSecureControlChannel("TLS");
} catch(FtpException ex) {
throw ex;
@@ -91,7 +92,7 @@
}
}
else {
- out.send(FtpResponse.REPLY_502_COMMAND_NOT_IMPLEMENTED, "AUTH", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_502_COMMAND_NOT_IMPLEMENTED, "AUTH", null));
}
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/CDUP.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/CDUP.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/CDUP.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/CDUP.java Sun Jan 21 14:43:52 2007
@@ -28,6 +28,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>CDUP <CRLF></code><br>
@@ -65,10 +66,10 @@
}
if(success) {
String dirName = fsview.getCurrentDirectory().getFullName();
- out.send(FtpResponse.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "CDUP", dirName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "CDUP", dirName));
}
else {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "CDUP", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "CDUP", null));
}
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/CWD.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/CWD.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/CWD.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/CWD.java Sun Jan 21 14:43:52 2007
@@ -28,6 +28,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>CWD <SP> <pathname> <CRLF></code><br>
@@ -71,10 +72,10 @@
}
if(success) {
dirName = fsview.getCurrentDirectory().getFullName();
- out.send(FtpResponse.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "CWD", dirName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "CWD", dirName));
}
else {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "CWD", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "CWD", null));
}
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/DELE.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/DELE.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/DELE.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/DELE.java Sun Jan 21 14:43:52 2007
@@ -33,6 +33,7 @@
import org.apache.ftpserver.interfaces.FtpServerContext;
import org.apache.ftpserver.interfaces.ServerFtpStatistics;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>DELE <SP> <pathname> <CRLF></code><br>
@@ -61,7 +62,7 @@
// argument check
String fileName = request.getArgument();
if(fileName == null) {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "DELE", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "DELE", null));
return;
}
@@ -75,7 +76,7 @@
ftpletRet = FtpletEnum.RET_DISCONNECT;
}
if(ftpletRet == FtpletEnum.RET_SKIP) {
- out.send(FtpResponse.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN, "DELE", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN, "DELE", fileName));
return;
}
else if(ftpletRet == FtpletEnum.RET_DISCONNECT) {
@@ -93,7 +94,7 @@
log.debug("Could not get file " + fileName, ex);
}
if(file == null) {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "DELE.invalid", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "DELE.invalid", fileName));
return;
}
@@ -101,13 +102,13 @@
fileName = file.getFullName();
if( !file.hasDeletePermission() ) {
- out.send(FtpResponse.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN, "DELE.permission", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN, "DELE.permission", fileName));
return;
}
// now delete
if(file.delete()) {
- out.send(FtpResponse.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "DELE", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "DELE", fileName));
// log message
String userName = session.getUser().getName();
@@ -132,7 +133,7 @@
}
else {
- out.send(FtpResponse.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN, "DELE", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN, "DELE", fileName));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/EPRT.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/EPRT.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/EPRT.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/EPRT.java Sun Jan 21 14:43:52 2007
@@ -29,6 +29,7 @@
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.interfaces.DataConnectionConfig;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* The EPRT command allows for the specification of an extended address
@@ -57,14 +58,14 @@
// argument check
String arg = request.getArgument();
if(arg == null) {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "EPRT", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "EPRT", null));
return;
}
// is port enabled
DataConnectionConfig dataCfg = connection.getServerContext().getDataConnectionConfig();
if(!dataCfg.isActiveEnabled()) {
- out.send(510, "EPRT.disabled", null);
+ out.write(FtpReplyUtil.translate(session, 510, "EPRT.disabled", null));
return;
}
@@ -79,7 +80,7 @@
}
catch(Exception ex) {
log.debug("Exception parsing host and port: " + arg, ex);
- out.send(510, "EPRT", null);
+ out.write(FtpReplyUtil.translate(session, 510, "EPRT", null));
return;
}
@@ -90,7 +91,7 @@
}
catch(UnknownHostException ex) {
log.debug("Unknown host: " + host, ex);
- out.send(FtpResponse.REPLY_553_REQUESTED_ACTION_NOT_TAKEN_FILE_NAME_NOT_ALLOWED, "EPRT.host", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_553_REQUESTED_ACTION_NOT_TAKEN_FILE_NAME_NOT_ALLOWED, "EPRT.host", null));
return;
}
@@ -98,7 +99,7 @@
if(dataCfg.isActiveIpCheck()) {
InetAddress clientAddr = session.getClientAddress();
if(!dataAddr.equals(clientAddr)) {
- out.send(510, "EPRT.mismatch", null);
+ out.write(FtpReplyUtil.translate(session, 510, "EPRT.mismatch", null));
return;
}
}
@@ -110,11 +111,11 @@
}
catch(NumberFormatException ex) {
log.debug("Invalid port: " + port, ex);
- out.send(FtpResponse.REPLY_552_REQUESTED_FILE_ACTION_ABORTED_EXCEEDED_STORAGE, "EPRT.invalid", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_552_REQUESTED_FILE_ACTION_ABORTED_EXCEEDED_STORAGE, "EPRT.invalid", null));
return;
}
session.getFtpDataConnection().setPortCommand(dataAddr, dataPort);
- out.send(FtpResponse.REPLY_200_COMMAND_OKAY, "EPRT", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_200_COMMAND_OKAY, "EPRT", null));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/EPSV.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/EPSV.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/EPSV.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/EPSV.java Sun Jan 21 14:43:52 2007
@@ -27,6 +27,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* The EPSV command requests that a server listen on a data port and
@@ -59,7 +60,7 @@
// set data connection
FtpDataConnectionFactory dataCon = session.getFtpDataConnection();
if (!dataCon.setPasvCommand()) {
- out.send(FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "EPSV", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "EPSV", null));
return;
}
@@ -68,6 +69,6 @@
// send connection info to client
String portStr = "|||" + servPort + '|';
- out.send(229, "EPSV", portStr);
+ out.write(FtpReplyUtil.translate(session, 229, "EPSV", portStr));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/FEAT.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/FEAT.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/FEAT.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/FEAT.java Sun Jan 21 14:43:52 2007
@@ -27,6 +27,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* The FEAT command (introduced in [RFC-2389]) allows servers with
@@ -47,6 +48,6 @@
// reset state variables
session.resetState();
- out.send(FtpResponse.REPLY_211_SYSTEM_STATUS_REPLY, "FEAT", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_211_SYSTEM_STATUS_REPLY, "FEAT", null));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/HELP.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/HELP.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/HELP.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/HELP.java Sun Jan 21 14:43:52 2007
@@ -27,6 +27,7 @@
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.interfaces.MessageResource;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>HELP [<SP> <string>] <CRLF></code><br>
@@ -55,7 +56,7 @@
// print global help
if(!request.hasArgument()) {
- out.send(FtpResponse.REPLY_214_HELP_MESSAGE, null, null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_214_HELP_MESSAGE, null, null));
return;
}
@@ -65,6 +66,6 @@
if(resource.getMessage(FtpResponse.REPLY_214_HELP_MESSAGE, ftpCmd, session.getLanguage()) == null) {
ftpCmd = null;
}
- out.send(FtpResponse.REPLY_214_HELP_MESSAGE, ftpCmd, null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_214_HELP_MESSAGE, ftpCmd, null));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/LANG.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/LANG.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/LANG.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/LANG.java Sun Jan 21 14:43:52 2007
@@ -28,6 +28,7 @@
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.interfaces.MessageResource;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* A new command "LANG" is added to the FTP command set to allow
@@ -54,7 +55,7 @@
String language = request.getArgument();
if(language == null) {
session.setLanguage(null);
- out.send(FtpResponse.REPLY_200_COMMAND_OKAY, "LANG", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_200_COMMAND_OKAY, "LANG", null));
return;
}
@@ -66,13 +67,13 @@
for(int i=0; i<availableLanguages.length; ++i) {
if(availableLanguages[i].equals(language)) {
session.setLanguage(language);
- out.send(FtpResponse.REPLY_200_COMMAND_OKAY, "LANG", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_200_COMMAND_OKAY, "LANG", null));
return;
}
}
}
// not found - send error message
- out.send(FtpResponse.REPLY_504_COMMAND_NOT_IMPLEMENTED_FOR_THAT_PARAMETER, "LANG", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_504_COMMAND_NOT_IMPLEMENTED_FOR_THAT_PARAMETER, "LANG", null));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/LIST.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/LIST.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/LIST.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/LIST.java Sun Jan 21 14:43:52 2007
@@ -33,6 +33,7 @@
import org.apache.ftpserver.listing.LISTFileFormater;
import org.apache.ftpserver.listing.ListArgument;
import org.apache.ftpserver.listing.ListArgumentParser;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>LIST [<SP> <pathname>] <CRLF></code><br>
@@ -68,14 +69,14 @@
session.resetState();
// get data connection
- out.send(FtpResponse.REPLY_150_FILE_STATUS_OKAY, "LIST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_150_FILE_STATUS_OKAY, "LIST", null));
FtpDataConnection dataConnection;
try {
dataConnection = session.getFtpDataConnection().openConnection();
} catch (Exception e) {
log.debug("Exception getting the output data stream", e);
- out.send(FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "LIST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "LIST", null));
return;
}
@@ -92,21 +93,21 @@
catch(SocketException ex) {
log.debug("Socket exception during list transfer", ex);
failure = true;
- out.send(FtpResponse.REPLY_426_CONNECTION_CLOSED_TRANSFER_ABORTED, "LIST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_426_CONNECTION_CLOSED_TRANSFER_ABORTED, "LIST", null));
}
catch(IOException ex) {
log.debug("IOException during list transfer", ex);
failure = true;
- out.send(FtpResponse.REPLY_551_REQUESTED_ACTION_ABORTED_PAGE_TYPE_UNKNOWN, "LIST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_551_REQUESTED_ACTION_ABORTED_PAGE_TYPE_UNKNOWN, "LIST", null));
} catch(IllegalArgumentException e) {
log.debug("Illegal list syntax: " + request.getArgument(), e);
// if listing syntax error - send message
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "LIST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "LIST", null));
}
// if data transfer ok - send transfer complete message
if(!failure) {
- out.send(FtpResponse.REPLY_226_CLOSING_DATA_CONNECTION, "LIST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_226_CLOSING_DATA_CONNECTION, "LIST", null));
}
}
finally {
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MD5.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MD5.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MD5.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MD5.java Sun Jan 21 14:43:52 2007
@@ -31,6 +31,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
import org.apache.ftpserver.util.IoUtils;
/**
@@ -65,7 +66,7 @@
String argument = request.getArgument();
if(argument == null || argument.trim().length() == 0) {
- out.send(FtpResponse.REPLY_504_COMMAND_NOT_IMPLEMENTED_FOR_THAT_PARAMETER, "MD5.invalid", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_504_COMMAND_NOT_IMPLEMENTED_FOR_THAT_PARAMETER, "MD5.invalid", null));
return;
}
@@ -91,13 +92,13 @@
}
if(file == null) {
- out.send(FtpResponse.REPLY_504_COMMAND_NOT_IMPLEMENTED_FOR_THAT_PARAMETER, "MD5.invalid", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_504_COMMAND_NOT_IMPLEMENTED_FOR_THAT_PARAMETER, "MD5.invalid", fileName));
return;
}
// check file
if(!file.isFile()) {
- out.send(FtpResponse.REPLY_504_COMMAND_NOT_IMPLEMENTED_FOR_THAT_PARAMETER, "MD5.invalid", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_504_COMMAND_NOT_IMPLEMENTED_FOR_THAT_PARAMETER, "MD5.invalid", fileName));
return;
}
@@ -116,15 +117,15 @@
} catch(NoSuchAlgorithmException e) {
log.debug("MD5 algorithm not available", e);
- out.send(FtpResponse.REPLY_502_COMMAND_NOT_IMPLEMENTED, "MD5.notimplemened", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_502_COMMAND_NOT_IMPLEMENTED, "MD5.notimplemened", null));
} finally {
IoUtils.close(is);
}
}
if(isMMD5) {
- out.send(252, "MMD5", sb.toString());
+ out.write(FtpReplyUtil.translate(session, 252, "MMD5", sb.toString()));
} else {
- out.send(251, "MD5", sb.toString());
+ out.write(FtpReplyUtil.translate(session, 251, "MD5", sb.toString()));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MDTM.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MDTM.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MDTM.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MDTM.java Sun Jan 21 14:43:52 2007
@@ -29,6 +29,7 @@
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
import org.apache.ftpserver.util.DateUtils;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>MDTM <SP> <pathname> <CRLF></code><br>
@@ -54,7 +55,7 @@
// argument check
String fileName = request.getArgument();
if(fileName == null) {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MDTM", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MDTM", null));
return;
}
@@ -67,7 +68,7 @@
log.debug("Exception getting file object", ex);
}
if(file == null) {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MDTM", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MDTM", fileName));
return;
}
@@ -75,10 +76,10 @@
fileName = file.getFullName();
if(file.doesExist()) {
String dateStr = DateUtils.getFtpDate( file.getLastModified() );
- out.send(FtpResponse.REPLY_213_FILE_STATUS, "MDTM", dateStr);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_213_FILE_STATUS, "MDTM", dateStr));
}
else {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MDTM", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MDTM", fileName));
}
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MKD.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MKD.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MKD.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MKD.java Sun Jan 21 14:43:52 2007
@@ -33,6 +33,7 @@
import org.apache.ftpserver.interfaces.FtpServerContext;
import org.apache.ftpserver.interfaces.ServerFtpStatistics;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>MKD <SP> <pathname> <CRLF></code><br>
@@ -63,7 +64,7 @@
// argument check
String fileName = request.getArgument();
if(fileName == null) {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MKD", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MKD", null));
return;
}
@@ -93,26 +94,26 @@
log.debug("Exception getting file object", ex);
}
if(file == null) {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MKD.invalid", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MKD.invalid", fileName));
return;
}
// check permission
fileName = file.getFullName();
if( !file.hasWritePermission() ) {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MKD.permission", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MKD.permission", fileName));
return;
}
// check file existance
if(file.doesExist()) {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MKD.exists", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MKD.exists", fileName));
return;
}
// now create directory
if(file.mkdir()) {
- out.send(FtpResponse.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "MKD", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "MKD", fileName));
// write log message
String userName = session.getUser().getName();
@@ -137,7 +138,7 @@
}
else {
- out.send(FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MKD", fileName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_550_REQUESTED_ACTION_NOT_TAKEN, "MKD", fileName));
}
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MLSD.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MLSD.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MLSD.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MLSD.java Sun Jan 21 14:43:52 2007
@@ -34,6 +34,7 @@
import org.apache.ftpserver.listing.ListArgument;
import org.apache.ftpserver.listing.ListArgumentParser;
import org.apache.ftpserver.listing.MLSTFileFormater;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>MLSD [<SP> <pathname>] <CRLF></code><br>
@@ -65,7 +66,7 @@
session.resetState();
// get data connection
- out.send(FtpResponse.REPLY_150_FILE_STATUS_OKAY, "MLSD", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_150_FILE_STATUS_OKAY, "MLSD", null));
// print listing data
@@ -74,7 +75,7 @@
dataConnection = session.getFtpDataConnection().openConnection();
} catch (Exception e) {
log.debug("Exception getting the output data stream", e);
- out.send(FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "MLSD", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "MLSD", null));
return;
}
@@ -90,21 +91,21 @@
catch(SocketException ex) {
log.debug("Socket exception during data transfer", ex);
failure = true;
- out.send(FtpResponse.REPLY_426_CONNECTION_CLOSED_TRANSFER_ABORTED, "MLSD", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_426_CONNECTION_CLOSED_TRANSFER_ABORTED, "MLSD", null));
}
catch(IOException ex) {
log.debug("IOException during data transfer", ex);
failure = true;
- out.send(FtpResponse.REPLY_551_REQUESTED_ACTION_ABORTED_PAGE_TYPE_UNKNOWN, "MLSD", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_551_REQUESTED_ACTION_ABORTED_PAGE_TYPE_UNKNOWN, "MLSD", null));
} catch(IllegalArgumentException e) {
log.debug("Illegal listing syntax: " + request.getArgument(), e);
// if listing syntax error - send message
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MLSD", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MLSD", null));
}
// if data transfer ok - send transfer complete message
if(!failure) {
- out.send(FtpResponse.REPLY_226_CLOSING_DATA_CONNECTION, "MLSD", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_226_CLOSING_DATA_CONNECTION, "MLSD", null));
}
}
finally {
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MLST.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MLST.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MLST.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MLST.java Sun Jan 21 14:43:52 2007
@@ -32,6 +32,7 @@
import org.apache.ftpserver.listing.ListArgument;
import org.apache.ftpserver.listing.ListArgumentParser;
import org.apache.ftpserver.listing.MLSTFileFormater;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>MLST <SP> <pathname> <CRLF></code><br>
@@ -62,14 +63,14 @@
file = session.getFileSystemView().getFileObject(parsedArg.getFile());
if(file != null && file.doesExist()) {
FileFormater formater = new MLSTFileFormater((String[])session.getAttribute("MLST.types"));
- out.send(FtpResponse.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "MLST", formater.format(file));
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_250_REQUESTED_FILE_ACTION_OKAY, "MLST", formater.format(file)));
} else {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MLST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MLST", null));
}
}
catch(FtpException ex) {
log.debug("Exception sending the file listing", ex);
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MLST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MLST", null));
}
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MODE.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MODE.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MODE.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/MODE.java Sun Jan 21 14:43:52 2007
@@ -26,6 +26,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>MODE <SP> <mode-code> <CRLF></code><br>
@@ -52,7 +53,7 @@
// argument check
if(!request.hasArgument()) {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MODE", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "MODE", null));
return;
}
@@ -61,14 +62,14 @@
md = Character.toUpperCase(md);
if(md == 'S') {
session.getFtpDataConnection().setZipMode(false);
- out.send(FtpResponse.REPLY_200_COMMAND_OKAY, "MODE", "S");
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_200_COMMAND_OKAY, "MODE", "S"));
}
else if(md == 'Z') {
session.getFtpDataConnection().setZipMode(true);
- out.send(FtpResponse.REPLY_200_COMMAND_OKAY, "MODE", "Z");
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_200_COMMAND_OKAY, "MODE", "Z"));
}
else {
- out.send(FtpResponse.REPLY_504_COMMAND_NOT_IMPLEMENTED_FOR_THAT_PARAMETER, "MODE", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_504_COMMAND_NOT_IMPLEMENTED_FOR_THAT_PARAMETER, "MODE", null));
}
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/NLST.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/NLST.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/NLST.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/NLST.java Sun Jan 21 14:43:52 2007
@@ -35,6 +35,7 @@
import org.apache.ftpserver.listing.ListArgument;
import org.apache.ftpserver.listing.ListArgumentParser;
import org.apache.ftpserver.listing.NLSTFileFormater;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>NLST [<SP> <pathname>] <CRLF></code><br>
@@ -69,7 +70,7 @@
session.resetState();
// get data connection
- out.send(FtpResponse.REPLY_150_FILE_STATUS_OKAY, "NLST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_150_FILE_STATUS_OKAY, "NLST", null));
// print listing data
@@ -78,7 +79,7 @@
dataConnection = session.getFtpDataConnection().openConnection();
} catch (Exception e) {
log.debug("Exception getting the output data stream", e);
- out.send(FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "NLST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "NLST", null));
return;
}
@@ -99,21 +100,21 @@
catch(SocketException ex) {
log.debug("Socket exception during data transfer", ex);
failure = true;
- out.send(FtpResponse.REPLY_426_CONNECTION_CLOSED_TRANSFER_ABORTED, "NLST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_426_CONNECTION_CLOSED_TRANSFER_ABORTED, "NLST", null));
}
catch(IOException ex) {
log.debug("IOException during data transfer", ex);
failure = true;
- out.send(FtpResponse.REPLY_551_REQUESTED_ACTION_ABORTED_PAGE_TYPE_UNKNOWN, "NLST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_551_REQUESTED_ACTION_ABORTED_PAGE_TYPE_UNKNOWN, "NLST", null));
} catch(IllegalArgumentException e) {
log.debug("Illegal listing syntax: " + request.getArgument(), e);
// if listing syntax error - send message
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "LIST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "LIST", null));
}
// if data transfer ok - send transfer complete message
if(!failure) {
- out.send(FtpResponse.REPLY_226_CLOSING_DATA_CONNECTION, "NLST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_226_CLOSING_DATA_CONNECTION, "NLST", null));
}
}
finally {
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/NOOP.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/NOOP.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/NOOP.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/NOOP.java Sun Jan 21 14:43:52 2007
@@ -27,6 +27,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>NOOP <CRLF></code><br>
@@ -49,6 +50,6 @@
FtpWriter out) throws IOException, FtpException {
session.resetState();
- out.send(FtpResponse.REPLY_200_COMMAND_OKAY, "NOOP", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_200_COMMAND_OKAY, "NOOP", null));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS.java Sun Jan 21 14:43:52 2007
@@ -29,6 +29,7 @@
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.interfaces.Command;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
@@ -59,7 +60,7 @@
// no params
String argument = request.getArgument();
if(argument == null) {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "OPTS", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "OPTS", null));
return;
}
@@ -79,13 +80,13 @@
}
else {
session.resetState();
- out.send(FtpResponse.REPLY_502_COMMAND_NOT_IMPLEMENTED, "OPTS.not.implemented", argument);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_502_COMMAND_NOT_IMPLEMENTED, "OPTS.not.implemented", argument));
}
}
catch(Exception ex) {
log.warn("OPTS.execute()", ex);
session.resetState();
- out.send(FtpResponse.REPLY_500_SYNTAX_ERROR_COMMAND_UNRECOGNIZED, "OPTS", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_500_SYNTAX_ERROR_COMMAND_UNRECOGNIZED, "OPTS", null));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS_MLST.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS_MLST.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS_MLST.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS_MLST.java Sun Jan 21 14:43:52 2007
@@ -28,6 +28,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* Client-Server listing negotation.
@@ -61,7 +62,7 @@
String argument = request.getArgument();
int spIndex = argument.indexOf(' ');
if(spIndex == -1) {
- out.send(FtpResponse.REPLY_503_BAD_SEQUENCE_OF_COMMANDS, "OPTS.MLST", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_503_BAD_SEQUENCE_OF_COMMANDS, "OPTS.MLST", null));
return;
}
String listTypes = argument.substring(spIndex + 1);
@@ -77,10 +78,10 @@
String[] validatedTypes = validateSelectedTypes(types);
if(validatedTypes != null) {
session.setAttribute("MLST.types", validatedTypes);
- out.send(FtpResponse.REPLY_200_COMMAND_OKAY, "OPTS.MLST", listTypes);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_200_COMMAND_OKAY, "OPTS.MLST", listTypes));
}
else {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "OPTS.MLST", listTypes);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "OPTS.MLST", listTypes));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS_UTF8.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS_UTF8.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS_UTF8.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/OPTS_UTF8.java Sun Jan 21 14:43:52 2007
@@ -27,6 +27,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
@@ -52,6 +53,6 @@
session.resetState();
// send default message
- out.send(FtpResponse.REPLY_200_COMMAND_OKAY, "OPTS.UTF8", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_200_COMMAND_OKAY, "OPTS.UTF8", null));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PASS.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PASS.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PASS.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PASS.java Sun Jan 21 14:43:52 2007
@@ -42,6 +42,7 @@
import org.apache.ftpserver.usermanager.AnonymousAuthentication;
import org.apache.ftpserver.usermanager.UserMetadata;
import org.apache.ftpserver.usermanager.UsernamePasswordAuthentication;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>PASS <SP> <password> <CRLF></code><br>
@@ -76,7 +77,7 @@
// argument check
String password = request.getArgument();
if(password == null) {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "PASS", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "PASS", null));
return;
}
@@ -84,13 +85,13 @@
String userName = session.getUserArgument();
if(userName == null && session.getUser() == null) {
- out.send(FtpResponse.REPLY_503_BAD_SEQUENCE_OF_COMMANDS, "PASS", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_503_BAD_SEQUENCE_OF_COMMANDS, "PASS", null));
return;
}
// already logged-in
if(session.isLoggedIn()) {
- out.send(FtpResponse.REPLY_202_COMMAND_NOT_IMPLEMENTED, "PASS", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_202_COMMAND_NOT_IMPLEMENTED, "PASS", null));
success = true;
return;
}
@@ -100,7 +101,7 @@
int currAnonLogin = stat.getCurrentAnonymousLoginNumber();
int maxAnonLogin = conManager.getMaxAnonymousLogins();
if( anonymous && (currAnonLogin >= maxAnonLogin) ) {
- out.send(FtpResponse.REPLY_421_SERVICE_NOT_AVAILABLE_CLOSING_CONTROL_CONNECTION, "PASS.anonymous", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_421_SERVICE_NOT_AVAILABLE_CLOSING_CONTROL_CONNECTION, "PASS.anonymous", null));
return;
}
@@ -108,7 +109,7 @@
int currLogin = stat.getCurrentLoginNumber();
int maxLogin = conManager.getMaxLogins();
if(maxLogin != 0 && currLogin >= maxLogin) {
- out.send(FtpResponse.REPLY_421_SERVICE_NOT_AVAILABLE_CLOSING_CONTROL_CONNECTION, "PASS.login", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_421_SERVICE_NOT_AVAILABLE_CLOSING_CONTROL_CONNECTION, "PASS.login", null));
return;
}
@@ -181,7 +182,7 @@
session.setMaxIdleTime(oldMaxIdleTime);
log.warn("Login failure - " + userName);
- out.send(FtpResponse.REPLY_530_NOT_LOGGED_IN, "PASS", userName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_530_NOT_LOGGED_IN, "PASS", userName));
stat.setLoginFail(connection);
return;
}
@@ -193,7 +194,7 @@
stat.setLogin(connection);
// everything is fine - send login ok message
- out.send(FtpResponse.REPLY_230_USER_LOGGED_IN, "PASS", userName);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_230_USER_LOGGED_IN, "PASS", userName));
if(anonymous) {
log.info("Anonymous login success - " + password);
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PASV.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PASV.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PASV.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PASV.java Sun Jan 21 14:43:52 2007
@@ -29,6 +29,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>PASV <CRLF></code><br>
@@ -58,7 +59,7 @@
// set data connection
FtpDataConnectionFactory dataCon = session.getFtpDataConnection();
if (!dataCon.setPasvCommand()) {
- out.send(FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "PASV", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_425_CANT_OPEN_DATA_CONNECTION, "PASV", null));
return;
}
@@ -68,6 +69,6 @@
// send connection info to client
String addrStr = servAddr.getHostAddress().replace( '.', ',' ) + ',' + (servPort>>8) + ',' + (servPort&0xFF);
- out.send(FtpResponse.REPLY_227_ENTERING_PASSIVE_MODE, "PASV", addrStr);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_227_ENTERING_PASSIVE_MODE, "PASV", addrStr));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PBSZ.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PBSZ.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PBSZ.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PBSZ.java Sun Jan 21 14:43:52 2007
@@ -27,6 +27,7 @@
import org.apache.ftpserver.ftplet.FtpRequest;
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* Protection buffer size.
@@ -45,6 +46,6 @@
FtpWriter out) throws IOException, FtpException {
session.resetState();
- out.send(FtpResponse.REPLY_200_COMMAND_OKAY, "PBSZ", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_200_COMMAND_OKAY, "PBSZ", null));
}
}
Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PORT.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PORT.java?view=diff&rev=498472&r1=498471&r2=498472
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PORT.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/command/PORT.java Sun Jan 21 14:43:52 2007
@@ -30,6 +30,7 @@
import org.apache.ftpserver.ftplet.FtpResponse;
import org.apache.ftpserver.interfaces.DataConnectionConfig;
import org.apache.ftpserver.listener.Connection;
+import org.apache.ftpserver.util.FtpReplyUtil;
/**
* <code>PORT <SP> <host-port> <CRLF></code><br>
@@ -67,20 +68,20 @@
// argument check
if(!request.hasArgument()) {
- out.send(FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "PORT", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_501_SYNTAX_ERROR_IN_PARAMETERS_OR_ARGUMENTS, "PORT", null));
return;
}
StringTokenizer st = new StringTokenizer(request.getArgument(), ",");
if(st.countTokens() != 6) {
- out.send(510, "PORT", null);
+ out.write(FtpReplyUtil.translate(session, 510, "PORT", null));
return;
}
// is port enabled
DataConnectionConfig dataCfg = connection.getServerContext().getDataConnectionConfig();
if(!dataCfg.isActiveEnabled()) {
- out.send(510, "PORT.disabled", null);
+ out.write(FtpReplyUtil.translate(session, 510, "PORT.disabled", null));
return;
}
@@ -93,7 +94,7 @@
}
catch(UnknownHostException ex) {
log.debug("Unknown host: " + dataSrvName, ex);
- out.send(FtpResponse.REPLY_553_REQUESTED_ACTION_NOT_TAKEN_FILE_NAME_NOT_ALLOWED, "PORT.host", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_553_REQUESTED_ACTION_NOT_TAKEN_FILE_NAME_NOT_ALLOWED, "PORT.host", null));
return;
}
@@ -101,7 +102,7 @@
if(dataCfg.isActiveIpCheck()) {
InetAddress clientAddr = session.getClientAddress();
if(!dataAddr.equals(clientAddr)) {
- out.send(510, "PORT.mismatch", null);
+ out.write(FtpReplyUtil.translate(session, 510, "PORT.mismatch", null));
return;
}
}
@@ -115,12 +116,12 @@
}
catch(NumberFormatException ex) {
log.debug("Invalid data port: " + request.getArgument(), ex);
- out.send(FtpResponse.REPLY_552_REQUESTED_FILE_ACTION_ABORTED_EXCEEDED_STORAGE, "PORT.invalid", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_552_REQUESTED_FILE_ACTION_ABORTED_EXCEEDED_STORAGE, "PORT.invalid", null));
return;
}
session.getFtpDataConnection().setPortCommand(dataAddr, dataPort);
- out.send(FtpResponse.REPLY_200_COMMAND_OKAY, "PORT", null);
+ out.write(FtpReplyUtil.translate(session, FtpResponse.REPLY_200_COMMAND_OKAY, "PORT", null));
}
}