This commit is contained in:
刘河
2019-10-17 09:21:01 +08:00
parent 5e5df224b7
commit b6a9001d43
9 changed files with 371 additions and 86 deletions

View File

@@ -2,14 +2,14 @@ package common
import (
"context"
"fmt"
"github.com/cnlh/nps/core"
"net"
"strconv"
)
type Proxy struct {
core.NpsPlugin
clientConn net.Conn
ctx context.Context
}
func (proxy *Proxy) GetConfigName() *core.NpsConfigs {
@@ -17,10 +17,9 @@ func (proxy *Proxy) GetConfigName() *core.NpsConfigs {
}
func (proxy *Proxy) Run(ctx context.Context) (context.Context, error) {
proxy.ctx = ctx
proxy.clientConn = proxy.GetClientConn(ctx)
clientId := proxy.GetClientId(ctx)
brg := proxy.GetBridge(ctx)
clientConn := proxy.GetClientConn(ctx)
//clientId := proxy.GetClientId(ctx)
//brg := proxy.GetBridge(ctx)
//severConn, err := brg.GetConnByClientId(clientId)
//if err != nil {
@@ -31,12 +30,22 @@ func (proxy *Proxy) Run(ctx context.Context) (context.Context, error) {
//if _, err := core.SendInfo(severConn, nil); err != nil {
// return ctx, err
//}
severConn, err := net.Dial(ctx.Value(core.PROXY_CONNECTION_TYPE).(string), ctx.Value(core.PROXY_CONNECTION_ADDR).(string)+":"+ctx.Value(core.PROXY_CONNECTION_PORT).(string))
connType := ctx.Value(core.PROXY_CONNECTION_TYPE).(string)
connAddr := ctx.Value(core.PROXY_CONNECTION_ADDR).(string)
connPort := strconv.Itoa(int(ctx.Value(core.PROXY_CONNECTION_PORT).(uint16)))
fmt.Println(connType, connAddr, connPort, clientConn.RemoteAddr().String())
serverConn, err := net.Dial(connType, connAddr+":"+connPort)
if err != nil {
return ctx, err
}
// data exchange
go core.CopyBuffer(severConn, proxy.clientConn)
core.CopyBuffer(proxy.clientConn, severConn)
go func() {
core.CopyBuffer(serverConn, clientConn)
serverConn.Close()
clientConn.Close()
}()
core.CopyBuffer(clientConn, serverConn)
serverConn.Close()
clientConn.Close()
return ctx, core.REQUEST_EOF
}