diff --git a/p2p/frp/server.go b/p2p/frp/server.go index acd9094..cab3d2e 100644 --- a/p2p/frp/server.go +++ b/p2p/frp/server.go @@ -1,48 +1,44 @@ package frp import ( - "fmt" - "github.com/fatedier/frp/pkg/config" - "github.com/fatedier/frp/server" - "github.com/phayes/freeport" - "io/ioutil" - "net/http" + "github.com/fatedier/frp/pkg/config" + "github.com/fatedier/frp/server" + "github.com/phayes/freeport" + "io/ioutil" + "net/http" ) -// TODO: Implement a way to -// check if ports are taken - type Server struct { - address string - port int + address string + port int } // StartFRPProxyFromRandom starts // reverse proxy server based on // a random port generated func StartFRPProxyFromRandom() (int, error) { - // gets current configuration - //config, err := configP2PRC.ConfigInit() - //if err != nil { - // return err - //} + // gets current configuration + //config, err := configP2PRC.ConfigInit() + //if err != nil { + // return err + //} - var s Server - s.address = "0.0.0.0" + var s Server + s.address = "0.0.0.0" - // use random port - OpenPorts, err := freeport.GetFreePorts(1) - if err != nil { - return 0, err - } + // use random port + OpenPorts, err := freeport.GetFreePorts(1) + if err != nil { + return 0, err + } - s.port = OpenPorts[0] + s.port = OpenPorts[0] - // start FRP server + // start FRP server - go s.StartFRPServer() + go s.StartFRPServer() - return OpenPorts[0], nil + return OpenPorts[0], nil } @@ -51,44 +47,35 @@ func StartFRPProxyFromRandom() (int, 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" + 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 } // GetFRPServerPort Gets the port no from the FRPServer to establish // the FRP connection needed. func GetFRPServerPort(host string) (string, error) { - resp, err := http.Get(host + "/FRPPort") + resp, err := http.Get(host + "/FRPPort") - if err != nil { - return "", err - } + if err != nil { + return "", err + } - defer resp.Body.Close() + defer resp.Body.Close() - body, err := ioutil.ReadAll(resp.Body) + body, err := ioutil.ReadAll(resp.Body) - if err != nil { - return "", err - } + if err != nil { + return "", err + } - fmt.Println(string(body)) - - return string(body), nil + return string(body), nil }