fix: encryption and compression didn't work in xtcp
This commit is contained in:
parent
e611c44dea
commit
6add3e3b9d
@ -332,12 +332,24 @@ func (pxy *XtcpProxy) InWorkConn(conn frpNet.Conn, m *msg.StartWorkConn) {
|
|||||||
|
|
||||||
lConn.WriteToUDP(sidBuf[:n], uAddr)
|
lConn.WriteToUDP(sidBuf[:n], uAddr)
|
||||||
|
|
||||||
kcpConn, err := frpNet.NewKcpConnFromUdp(lConn, false, natHoleRespMsg.VisitorAddr)
|
var kcpConn io.ReadWriteCloser
|
||||||
|
kcpConn, err = frpNet.NewKcpConnFromUdp(lConn, false, natHoleRespMsg.VisitorAddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
pxy.Error("create kcp connection from udp connection error: %v", err)
|
pxy.Error("create kcp connection from udp connection error: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if pxy.cfg.UseEncryption {
|
||||||
|
kcpConn, err = frpIo.WithEncryption(kcpConn, []byte(pxy.cfg.Sk))
|
||||||
|
if err != nil {
|
||||||
|
pxy.Error("create decryption stream error: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if pxy.cfg.UseCompression {
|
||||||
|
kcpConn = frpIo.WithCompression(kcpConn)
|
||||||
|
}
|
||||||
|
|
||||||
fmuxCfg := fmux.DefaultConfig()
|
fmuxCfg := fmux.DefaultConfig()
|
||||||
fmuxCfg.KeepAliveInterval = 5 * time.Second
|
fmuxCfg.KeepAliveInterval = 5 * time.Second
|
||||||
fmuxCfg.LogOutput = ioutil.Discard
|
fmuxCfg.LogOutput = ioutil.Discard
|
||||||
@ -485,23 +497,7 @@ func (pxy *UdpProxy) InWorkConn(conn frpNet.Conn, m *msg.StartWorkConn) {
|
|||||||
func HandleTcpWorkConnection(localInfo *config.LocalSvrConf, proxyPlugin plugin.Plugin,
|
func HandleTcpWorkConnection(localInfo *config.LocalSvrConf, proxyPlugin plugin.Plugin,
|
||||||
baseInfo *config.BaseProxyConf, workConn frpNet.Conn, encKey []byte, m *msg.StartWorkConn) {
|
baseInfo *config.BaseProxyConf, workConn frpNet.Conn, encKey []byte, m *msg.StartWorkConn) {
|
||||||
|
|
||||||
var (
|
var remote io.ReadWriteCloser = workConn
|
||||||
remote io.ReadWriteCloser
|
|
||||||
err error
|
|
||||||
)
|
|
||||||
remote = workConn
|
|
||||||
|
|
||||||
if baseInfo.UseEncryption {
|
|
||||||
remote, err = frpIo.WithEncryption(remote, encKey)
|
|
||||||
if err != nil {
|
|
||||||
workConn.Close()
|
|
||||||
workConn.Error("create encryption stream error: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if baseInfo.UseCompression {
|
|
||||||
remote = frpIo.WithCompression(remote)
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if we need to send proxy protocol info
|
// check if we need to send proxy protocol info
|
||||||
var extraInfo []byte
|
var extraInfo []byte
|
||||||
|
Loading…
Reference in New Issue
Block a user