mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-20 02:54:46 +00:00
commit
c6347a7845
|
|
@ -22,7 +22,7 @@ import net.psforever.objects.Default
|
|||
import net.psforever.packet._
|
||||
import net.psforever.packet.control._
|
||||
import net.psforever.packet.crypto.{ClientChallengeXchg, ClientFinished, ServerChallengeXchg, ServerFinished}
|
||||
import net.psforever.packet.game.{ChangeFireModeMessage, CharacterInfoMessage, KeepAliveMessage, PingMsg}
|
||||
import net.psforever.packet.game._
|
||||
import net.psforever.packet.PacketCoding.CryptoCoding
|
||||
import net.psforever.util.{Config, DiffieHellman, Md5Mac}
|
||||
|
||||
|
|
@ -89,6 +89,16 @@ object MiddlewareActor {
|
|||
/** Send outgoing packet */
|
||||
final case class Send(msg: PlanetSidePacket) extends Command
|
||||
|
||||
/** Send outgoing packet as its hexadecimal directly */
|
||||
final case class Raw(msg: BitVector, exclusive: Boolean) extends Command
|
||||
object Raw {
|
||||
def apply(msg: BitVector): Raw = Raw(msg, exclusive = false)
|
||||
|
||||
def apply(msg: ByteVector): Raw = Raw(msg.toBitVector, exclusive = false)
|
||||
|
||||
def apply(msg: ByteVector, exclusive: Boolean): Raw = Raw(msg, exclusive)
|
||||
}
|
||||
|
||||
/** Teardown connection */
|
||||
final case class Teardown() extends Command
|
||||
|
||||
|
|
@ -442,6 +452,14 @@ class MiddlewareActor(
|
|||
out(packet)
|
||||
Behaviors.same
|
||||
|
||||
case Raw(msg, exclusive) =>
|
||||
if (exclusive) {
|
||||
outQueue.enqueue((KeepAliveMessage(), msg)) //caught by bundling isolation filter
|
||||
} else {
|
||||
outQueue.enqueue((ActionResultMessage.Pass, msg))
|
||||
}
|
||||
Behaviors.same
|
||||
|
||||
case ProcessQueue() =>
|
||||
processQueue()
|
||||
Behaviors.same
|
||||
|
|
|
|||
Loading…
Reference in a new issue