mirror of
https://github.com/ehang-io/nps.git
synced 2025-09-03 12:36:54 +00:00
module
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user