diff options
author | Tyler St. Onge <tylertstonge@gmail.com> | 2020-07-29 22:36:47 -0400 |
---|---|---|
committer | Tyler St. Onge <tylertstonge@gmail.com> | 2020-07-29 22:36:47 -0400 |
commit | 14fa23601c560464a19a55e1b4e530b742df301a (patch) | |
tree | 08f6322343b7b614f3683a683a538595b0234e07 /src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala | |
parent | 747b6af76b23650756811d896bf76b4331419784 (diff) |
beginning research into accepting files
Diffstat (limited to 'src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala')
-rw-r--r-- | src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala | 20 |
1 files changed, 20 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 index 48db3f5..8bdb190 100644 --- a/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala +++ b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpHandler.scala @@ -1,5 +1,7 @@ package com.tylerstonge.honeypot.ftp +import java.net.InetSocketAddress + import akka.actor.Actor import akka.event.{Logging, LoggingAdapter} import akka.io.Tcp.{PeerClosed, Received, Write} @@ -25,11 +27,29 @@ class FtpHandler extends Actor { "230 Login successful.\n" case "pwd" => "257 \"/\" is the current directory\n" case "quit" => "221 Goodbye.\n" + case "pasv" => + context.actorOf(FtpFileReceiver.props(1287)) + "227 entering passive mode (127,0,0,1,5,7)\n" + case "port" => + context.actorOf(FtpFileRetriever.props(new InetSocketAddress(getHostname(msg(1)), getPort(msg(1))))) + "200 OK\n" + case "stor" => + "200 OK \n" case _ => log.info("unsupported command received: {}", msg.mkString(" ")) "451 Requested action aborted. Local error in processing.\n" } + def getHostname(msg: String): String = { + val split = msg.split(",") + split.slice(0, 4).mkString(".") + } + + def getPort(msg: String): Int = { + val split = msg.split(",") + split(4).toInt * 256 + split(5).toInt + } + def sanitize(data: ByteString): Array[String] = { data.utf8String.trim.toLowerCase().split(" ") } |