added route to auto create FRP port
This commit is contained in:
@@ -1,48 +1,45 @@
|
||||
package frp
|
||||
|
||||
import (
|
||||
configP2PRC "git.sr.ht/~akilan1999/p2p-rendering-computation/config"
|
||||
"github.com/fatedier/frp/pkg/config"
|
||||
"github.com/fatedier/frp/server"
|
||||
"strconv"
|
||||
"github.com/fatedier/frp/pkg/config"
|
||||
"github.com/fatedier/frp/server"
|
||||
"github.com/phayes/freeport"
|
||||
)
|
||||
|
||||
// TODO: Implement a way to
|
||||
// check if ports are taken
|
||||
|
||||
type Server struct {
|
||||
address string
|
||||
port int
|
||||
address string
|
||||
port int
|
||||
}
|
||||
|
||||
// StartFRPProxyFromConfig starts
|
||||
// StartFRPProxyFromRandom starts
|
||||
// reverse proxy server based on
|
||||
// the port provided in the config file
|
||||
// field FRPServerPort.
|
||||
func StartFRPProxyFromConfig() error {
|
||||
// gets current configuration
|
||||
config, err := configP2PRC.ConfigInit()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// a random port generated
|
||||
func StartFRPProxyFromRandom() (int, error) {
|
||||
// gets current configuration
|
||||
//config, err := configP2PRC.ConfigInit()
|
||||
//if err != nil {
|
||||
// return err
|
||||
//}
|
||||
|
||||
var s Server
|
||||
s.address = "0.0.0.0"
|
||||
// Converting config port to int
|
||||
port, err := strconv.Atoi(config.FRPServerPort)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
s.port = port
|
||||
var s Server
|
||||
s.address = "0.0.0.0"
|
||||
|
||||
// start FRP server
|
||||
// use random port
|
||||
OpenPorts, err := freeport.GetFreePorts(1)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
err = s.StartFRPServer()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
s.port = OpenPorts[0]
|
||||
|
||||
return nil
|
||||
// start FRP server
|
||||
|
||||
go s.StartFRPServer()
|
||||
|
||||
return OpenPorts[0], nil
|
||||
|
||||
}
|
||||
|
||||
@@ -51,22 +48,22 @@ func StartFRPProxyFromConfig() error {
|
||||
// This function starts a server that can act as a reverse
|
||||
// proxy for nodes behind NAT.
|
||||
func (s *Server) StartFRPServer() error {
|
||||
baseConfig := config.GetDefaultServerConf()
|
||||
baseConfig.BindAddr = s.address
|
||||
baseConfig := config.GetDefaultServerConf()
|
||||
baseConfig.BindAddr = s.address
|
||||
|
||||
//TODO look into later for dashboard
|
||||
//baseConfig.DashboardAddr = "127.0.0.1"
|
||||
//baseConfig.DashboardPort = 8754
|
||||
//baseConfig.DashboardUser = "admin"
|
||||
//baseConfig.DashboardPwd = "admin"
|
||||
//TODO look into later for dashboard
|
||||
//baseConfig.DashboardAddr = "127.0.0.1"
|
||||
//baseConfig.DashboardPort = 8754
|
||||
//baseConfig.DashboardUser = "admin"
|
||||
//baseConfig.DashboardPwd = "admin"
|
||||
|
||||
// todo change to make it a dynamic port
|
||||
baseConfig.BindPort = s.port
|
||||
service, err := server.NewService(baseConfig)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// todo change to make it a dynamic port
|
||||
baseConfig.BindPort = s.port
|
||||
service, err := server.NewService(baseConfig)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
service.Run()
|
||||
return nil
|
||||
service.Run()
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user