summaryrefslogtreecommitdiff
path: root/src/main/scala/com/tylerstonge/honeypot/ftp/FtpFileRetriever.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/com/tylerstonge/honeypot/ftp/FtpFileRetriever.scala')
-rw-r--r--src/main/scala/com/tylerstonge/honeypot/ftp/FtpFileRetriever.scala50
1 files changed, 0 insertions, 50 deletions
diff --git a/src/main/scala/com/tylerstonge/honeypot/ftp/FtpFileRetriever.scala b/src/main/scala/com/tylerstonge/honeypot/ftp/FtpFileRetriever.scala
deleted file mode 100644
index 1e441dd..0000000
--- a/src/main/scala/com/tylerstonge/honeypot/ftp/FtpFileRetriever.scala
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.tylerstonge.honeypot.ftp
-
-import java.net.InetSocketAddress
-import java.nio.file.{Files, Paths}
-
-import akka.actor.{Actor, Props}
-import akka.event.{Logging, LoggingAdapter}
-import akka.io.Tcp._
-import akka.io.{IO, Tcp}
-import akka.util.{ByteString, ByteStringBuilder}
-
-object FtpFileRetriever {
- def props(remote: InetSocketAddress): Props = Props(new FtpFileRetriever(remote))
-}
-
-class FtpFileRetriever(remote: InetSocketAddress) extends Actor {
-
- val log: LoggingAdapter = Logging(context.system, this)
- IO(Tcp)(context.system) ! Connect(remote)
- val fileData: ByteStringBuilder = ByteString.newBuilder
-
- override def preStart(): Unit = {
- super.preStart()
- log.info("started retrieving from {}:{}", remote.getHostString, remote.getPort)
- }
-
- override def receive: Receive = {
- case CommandFailed(_: Connect) =>
- context.stop(self)
- case c@Connected(_, _) =>
- val connection = sender()
- connection ! Register(self)
- context.become {
- case data: ByteString =>
- log.info("received {} bytes", data.length)
- fileData.addAll(data)
- case CommandFailed(w: Write) =>
- log.info("command failed")
- case Received(data) =>
- log.info("received {} bytes", data.length)
- fileData.addAll(data)
- case _: ConnectionClosed =>
- log.info("peer closed connection, writing file to disk")
- val out = Files.newByteChannel(Paths.get("testfile.txt"))
- out.write(fileData.result().toByteBuffer)
- out.close()
- context.stop(self)
- }
- }
-}