diff options
author | Tyler St. Onge <tylertstonge@gmail.com> | 2020-07-24 14:46:29 -0400 |
---|---|---|
committer | Tyler St. Onge <tylertstonge@gmail.com> | 2020-07-24 14:46:29 -0400 |
commit | 945332ca057383f258c78fd15cbc22f8b8d58a83 (patch) | |
tree | 95ef0b431fbe18f214a2d98e5fc5635d70742716 /src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala | |
parent | 8eba99109961802207c5cce7f9c7708153a9486f (diff) |
restructure project and flesh out more commands
Diffstat (limited to 'src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala')
-rw-r--r-- | src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala new file mode 100644 index 0000000..8a55396 --- /dev/null +++ b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala @@ -0,0 +1,27 @@ +package com.tylerstonge.honeypot.ftp + +import akka.actor.Actor +import akka.event.{Logging, LoggingAdapter} +import akka.io.Tcp.{PeerClosed, Received, Write} +import akka.util.ByteString + +class FtpHandler extends Actor { + val log: LoggingAdapter = Logging(context.system, this) + + override def receive: Receive = { + case Received(data) => + log.info(">> {}", data.utf8String) + sender() ! Write(ByteString.apply(parse(data.utf8String))) + case PeerClosed => + log.info("closing connection") + context.stop(self) + } + + def parse(msg: String): String = msg match { + case "USER anonymous\n" => "331 Please specify password.\n" + case "PASS password\n" => "230 Login successful.\n" + case "PWD\n" => "257 \"/\" is the current directory\n" + case "QUIT\n" => "221 Goodbye.\n" + case _ => "200 sure\n" + } +} |