Allow multiple sub sections for tcp/udp server

This commit is contained in:
Tim David Saxen 2018-11-29 08:47:01 +01:00 committed by GitHub
parent e5b261d827
commit 6adca072d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -40,6 +40,7 @@ type Proxy interface {
Run() (remoteAddr string, err error) Run() (remoteAddr string, err error)
GetControl() *Control GetControl() *Control
GetName() string GetName() string
GetToken() string
GetConf() config.ProxyConf GetConf() config.ProxyConf
GetWorkConnFromPool() (workConn frpNet.Conn, err error) GetWorkConnFromPool() (workConn frpNet.Conn, err error)
GetUsedPortsNum() int GetUsedPortsNum() int
@ -52,6 +53,7 @@ type BaseProxy struct {
ctl *Control ctl *Control
listeners []frpNet.Listener listeners []frpNet.Listener
usedPortsNum int usedPortsNum int
token string
mu sync.RWMutex mu sync.RWMutex
log.Logger log.Logger
@ -61,6 +63,10 @@ func (pxy *BaseProxy) GetName() string {
return pxy.name return pxy.name
} }
func (pxy *BaseProxy) GetToken() string {
return pxy.token
}
func (pxy *BaseProxy) GetControl() *Control { func (pxy *BaseProxy) GetControl() *Control {
return pxy.ctl return pxy.ctl
} }
@ -308,7 +314,7 @@ func (pxy *HttpProxy) GetRealConn() (workConn frpNet.Conn, err error) {
var rwc io.ReadWriteCloser = tmpConn var rwc io.ReadWriteCloser = tmpConn
if pxy.cfg.UseEncryption { if pxy.cfg.UseEncryption {
rwc, err = frpIo.WithEncryption(rwc, []byte(g.GlbServerCfg.Token)) rwc, err = frpIo.WithEncryption(rwc, []byte(pxy.token))
if err != nil { if err != nil {
pxy.Error("create encryption stream error: %v", err) pxy.Error("create encryption stream error: %v", err)
return return
@ -664,9 +670,12 @@ func HandleUserTcpConnection(pxy Proxy, userConn frpNet.Conn) {
defer workConn.Close() defer workConn.Close()
var local io.ReadWriteCloser = workConn var local io.ReadWriteCloser = workConn
var token string = pxy.GetToken()
cfg := pxy.GetConf().GetBaseInfo() cfg := pxy.GetConf().GetBaseInfo()
if cfg.UseEncryption { if cfg.UseEncryption {
local, err = frpIo.WithEncryption(local, []byte(g.GlbServerCfg.Token)) local, err = frpIo.WithEncryption(local, []byte(token))
if err != nil { if err != nil {
pxy.Error("create encryption stream error: %v", err) pxy.Error("create encryption stream error: %v", err)
return return