SSH.java 839 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package de.tudarmstadt.informatik.hostage.protocol;
  2. import java.util.regex.Pattern;
  3. public final class SSH implements Protocol {
  4. private static enum STATE {
  5. NONE, OPEN, CLOSED
  6. };
  7. private STATE state = STATE.NONE;
  8. @Override
  9. public int getPort() {
  10. return 8022;
  11. }
  12. @Override
  13. public TALK_FIRST whoTalksFirst() {
  14. return TALK_FIRST.SERVER;
  15. }
  16. @Override
  17. public String processMessage(String message) {
  18. switch (state) {
  19. case NONE:
  20. state = STATE.OPEN;
  21. return "Connection established.";
  22. case OPEN:
  23. if (Pattern.matches("^QUIT\\s?", message)) {
  24. state = STATE.CLOSED;
  25. return null;
  26. } else {
  27. return message;
  28. }
  29. default:
  30. return "Connection closed.";
  31. }
  32. }
  33. @Override
  34. public boolean isClosed() {
  35. return (state == STATE.CLOSED);
  36. }
  37. @Override
  38. public String toString() {
  39. return "SSH";
  40. }
  41. }