1 5 package com.coldcore.coloradoftp.command.impl.ftp; 6 7 import com.coldcore.coloradoftp.command.Reply; 8 import com.coldcore.coloradoftp.command.impl.AbstractCommand; 9 import com.coldcore.coloradoftp.connection.DataConnection; 10 import com.coldcore.coloradoftp.connection.DataPortListener; 11 import com.coldcore.coloradoftp.connection.DataPortListenerSet; 12 import com.coldcore.coloradoftp.factory.ObjectFactory; 13 import com.coldcore.coloradoftp.factory.ObjectName; 14 import org.apache.log4j.Logger; 15 16 public class AborCommand extends AbstractCommand { 17 18 private static Logger log = Logger.getLogger(AborCommand.class); 19 20 21 public Reply execute() { 22 Reply reply = getReply(); 23 if (!testLogin()) return reply; 24 25 controlConnection.getDataConnectionInitiator().abort(); 27 28 DataPortListenerSet listeners = (DataPortListenerSet) ObjectFactory.getObject(ObjectName.DATA_PORT_LISTENER_SET); 30 for (DataPortListener listener : listeners.list()) 31 listener.removeConnection(controlConnection); 32 33 DataConnection dataConnection = controlConnection.getDataConnection(); 35 if (dataConnection != null) { 36 log.debug("Aborting data connection, it will send reply to ABOR command"); 37 dataConnection.abort(); 38 return null; 39 } else { 40 reply.setCode("226"); 41 reply.setText("Abort command successful."); 42 return reply; 43 } 44 } 45 46 47 public boolean processInInterruptState() { 48 return true; 49 } 50 51 52 public boolean canClearInterruptState() { 53 return true; 54 } 55 56 } 57 | Popular Tags |