1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.ftp.core.command.internal;
21
22 import org.waarp.common.command.ReplyCode;
23 import org.waarp.common.command.exception.Reply503Exception;
24 import org.waarp.common.logging.WaarpLogger;
25 import org.waarp.common.logging.WaarpLoggerFactory;
26 import org.waarp.ftp.core.command.AbstractCommand;
27 import org.waarp.ftp.core.command.FtpCommandCode;
28 import org.waarp.ftp.core.command.info.NOOP;
29
30
31
32
33 public class IncorrectCommand extends AbstractCommand {
34
35
36
37 private static final WaarpLogger logger =
38 WaarpLoggerFactory.getLogger(IncorrectCommand.class);
39
40 @Override
41 public final void exec() throws Reply503Exception {
42 getSession().setReplyCode(ReplyCode.REPLY_503_BAD_SEQUENCE_OF_COMMANDS,
43 "Bas sequence of commands: " + getCommand() +
44 " following " +
45 getSession().getPreviousCommand().getCommand());
46 logger.warn(getSession().getAnswer());
47 if (getSession().getPreviousCommand().getCode() !=
48 FtpCommandCode.Connection &&
49 getSession().getPreviousCommand().getCode() != FtpCommandCode.PASS &&
50 getSession().getPreviousCommand().getCode() != FtpCommandCode.USER) {
51 getSession().setNextCommand(new NOOP(getSession()));
52 } else {
53 invalidCurrentCommand();
54 }
55 throw new Reply503Exception(getSession().getReplyCode().getMesg());
56 }
57 }