added barrier escape NAT support
This commit is contained in:
@@ -8,7 +8,7 @@ import (
|
||||
// EscapeNAT Func to escape NAT
|
||||
// - 1 port for server
|
||||
// - 2 port for barrierKVM
|
||||
func EscapeNAT(ScreenSharePort, GameplayServerPort string) (ServerPort string, ScreensharePort string, barrierKVMport string, err error) {
|
||||
func EscapeNAT(ScreenSharePort, GameplayServerPort string) (ServerPort string, ScreensharePort string, err error) {
|
||||
// Get free port from P2PRC server node
|
||||
serverPort, err := frp.GetFRPServerPort("http://64.227.168.102:8088")
|
||||
|
||||
@@ -39,8 +39,12 @@ func EscapeNAT(ScreenSharePort, GameplayServerPort string) (ServerPort string, S
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func EscapeNATBarrier() (barrierKVMport string, err error) {
|
||||
// Get free port from P2PRC server node
|
||||
serverPort, err = frp.GetFRPServerPort("http://64.227.168.102:8088")
|
||||
serverPort, err := frp.GetFRPServerPort("http://64.227.168.102:8088")
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
|
||||
31
main.go
31
main.go
@@ -17,6 +17,7 @@ import (
|
||||
func main() {
|
||||
addr := flag.String("addr", "0.0.0.0", "Listen address")
|
||||
//port := flag.String("port", "8888", "port for running the server")
|
||||
barrier := flag.Bool("barrier", false, "set external port barrier")
|
||||
tls := flag.Bool("tls", false, "Use TLS")
|
||||
setconfig := flag.Bool("setconfig", false, "Generates a config file")
|
||||
certFile := flag.String("certFile", "files/server.crt", "TLS cert file")
|
||||
@@ -43,6 +44,27 @@ func main() {
|
||||
return
|
||||
}
|
||||
|
||||
Config, err := config.ConfigInit()
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// if barrier flag is provided
|
||||
if *barrier {
|
||||
natBarrier, err := core.EscapeNATBarrier()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
Config.NATEscapeBarrierPort = natBarrier
|
||||
err = Config.WriteConfig()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
fmt.Println(Config.IPAddress + ":" + Config.NATEscapeBarrierPort)
|
||||
return
|
||||
}
|
||||
|
||||
// Print out room information
|
||||
if *roomInfo {
|
||||
room, err := core.ReadRoomsFile()
|
||||
@@ -87,13 +109,8 @@ func main() {
|
||||
return
|
||||
}
|
||||
|
||||
Config, err := config.ConfigInit()
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// running implementation to escape NAT
|
||||
GameServerPort, ScreenSharePort, barrireKVM, err := core.EscapeNAT(Config.InternalScreenSharePort, Config.InternalGameServerPort)
|
||||
GameServerPort, ScreenSharePort, err := core.EscapeNAT(Config.InternalScreenSharePort, Config.InternalGameServerPort)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
@@ -101,7 +118,7 @@ func main() {
|
||||
Config.IPAddress = "64.227.168.102"
|
||||
Config.NATEscapeGameServerPort = GameServerPort
|
||||
Config.NATEscapeScreenSharePort = ScreenSharePort
|
||||
Config.NATEscapeBarrierPort = barrireKVM
|
||||
Config.NATEscapeBarrierPort = ""
|
||||
|
||||
err = Config.WriteConfig()
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user