mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-07-16 08:55:16 +00:00
Add input argument for listen address
This commit is contained in:
parent
3fca8b1a95
commit
3ccb31f961
4 changed files with 25 additions and 5 deletions
6
pslogin/src/main/scala/LoginConfig.scala
Normal file
6
pslogin/src/main/scala/LoginConfig.scala
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
// Copyright (c) 2016 PSForever.net to present
|
||||||
|
import java.net.InetAddress
|
||||||
|
|
||||||
|
object LoginConfig {
|
||||||
|
var serverIpAddress : InetAddress = InetAddress.getLoopbackAddress
|
||||||
|
}
|
||||||
|
|
@ -89,8 +89,9 @@ class LoginSessionActor extends Actor with MDCContextAware {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: move to global configuration or database lookup
|
||||||
val serverName = "PSForever"
|
val serverName = "PSForever"
|
||||||
val serverAddress = new InetSocketAddress(InetAddress.getLocalHost.getHostAddress, 51001)
|
val serverAddress = new InetSocketAddress(LoginConfig.serverIpAddress.getHostAddress, 51001)
|
||||||
|
|
||||||
def handleGamePkt(pkt : PlanetSideGamePacket) = pkt match {
|
def handleGamePkt(pkt : PlanetSideGamePacket) = pkt match {
|
||||||
case LoginMessage(majorVersion, minorVersion, buildDate, username,
|
case LoginMessage(majorVersion, minorVersion, buildDate, username,
|
||||||
|
|
|
||||||
|
|
@ -84,12 +84,22 @@ object PsLogin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def parseArgs(args : Array[String]) : Unit = {
|
||||||
|
if(args.length == 1) {
|
||||||
|
LoginConfig.serverIpAddress = InetAddress.getByName(args{0})
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
LoginConfig.serverIpAddress = InetAddress.getLocalHost
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
def main(args : Array[String]) : Unit = {
|
def main(args : Array[String]) : Unit = {
|
||||||
// Early start up
|
// Early start up
|
||||||
banner()
|
banner()
|
||||||
println(systemInformation)
|
println(systemInformation)
|
||||||
|
|
||||||
initializeLogging("logback.xml")
|
initializeLogging("logback.xml")
|
||||||
|
parseArgs(args)
|
||||||
|
|
||||||
/** Initialize the PSCrypto native library
|
/** Initialize the PSCrypto native library
|
||||||
*
|
*
|
||||||
|
|
@ -149,11 +159,11 @@ object PsLogin {
|
||||||
|
|
||||||
/** Create two actors for handling the login and world server endpoints */
|
/** Create two actors for handling the login and world server endpoints */
|
||||||
val listener = system.actorOf(Props(new UdpListener(Props(new SessionRouter(loginTemplate)), "login-session-router",
|
val listener = system.actorOf(Props(new UdpListener(Props(new SessionRouter(loginTemplate)), "login-session-router",
|
||||||
InetAddress.getLocalHost, loginServerPort)), "login-udp-endpoint")
|
LoginConfig.serverIpAddress, loginServerPort)), "login-udp-endpoint")
|
||||||
val worldListener = system.actorOf(Props(new UdpListener(Props(new SessionRouter(worldTemplate)), "world-session-router",
|
val worldListener = system.actorOf(Props(new UdpListener(Props(new SessionRouter(worldTemplate)), "world-session-router",
|
||||||
InetAddress.getLocalHost, worldServerPort)), "world-udp-endpoint")
|
LoginConfig.serverIpAddress, worldServerPort)), "world-udp-endpoint")
|
||||||
|
|
||||||
logger.info(s"NOTE: Set client.ini to point to ${InetAddress.getLocalHost.getHostAddress}:$loginServerPort")
|
logger.info(s"NOTE: Set client.ini to point to ${LoginConfig.serverIpAddress.getHostAddress}:$loginServerPort")
|
||||||
|
|
||||||
// Wait forever until the actor system shuts down
|
// Wait forever until the actor system shuts down
|
||||||
Await.result(system.whenTerminated, Duration.Inf)
|
Await.result(system.whenTerminated, Duration.Inf)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
// Copyright (c) 2016 PSForever.net to present
|
// Copyright (c) 2016 PSForever.net to present
|
||||||
import java.net.{InetAddress, InetSocketAddress}
|
import java.net.{InetAddress, InetSocketAddress}
|
||||||
|
|
||||||
import akka.actor.SupervisorStrategy.{Restart, Stop}
|
import akka.actor.SupervisorStrategy.Stop
|
||||||
import akka.actor.{Actor, ActorRef, OneForOneStrategy, Props, Terminated}
|
import akka.actor.{Actor, ActorRef, OneForOneStrategy, Props, Terminated}
|
||||||
import akka.io._
|
import akka.io._
|
||||||
import scodec.bits._
|
import scodec.bits._
|
||||||
|
|
@ -34,6 +34,9 @@ class UdpListener(nextActorProps : Props, nextActorName : String, address : Inet
|
||||||
createNextActor()
|
createNextActor()
|
||||||
|
|
||||||
context.become(ready(sender()))
|
context.become(ready(sender()))
|
||||||
|
case Udp.CommandFailed(Udp.Bind(_, address, _)) =>
|
||||||
|
log.error("Failed to bind to the network interface: " + address)
|
||||||
|
context.system.terminate()
|
||||||
case default =>
|
case default =>
|
||||||
log.error(s"Unexpected message $default")
|
log.error(s"Unexpected message $default")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue