mirror of
https://github.com/cedar2025/hysteria.git
synced 2025-07-06 03:09:50 +00:00
Fix wechat protocol is not working if no obfs string is configured
This commit is contained in:
parent
f7de18fd43
commit
f22705be2c
@ -25,10 +25,13 @@ type ObfsWeChatUDPConn struct {
|
|||||||
sn uint32
|
sn uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewObfsWeChatUDPConn(orig *net.UDPConn, obfs obfs.Obfuscator) *ObfsWeChatUDPConn {
|
func NewObfsWeChatUDPConn(orig *net.UDPConn, obfs_ obfs.Obfuscator) *ObfsWeChatUDPConn {
|
||||||
|
if obfs_ == nil {
|
||||||
|
obfs_ = obfs.NewDummyObfuscator()
|
||||||
|
}
|
||||||
return &ObfsWeChatUDPConn{
|
return &ObfsWeChatUDPConn{
|
||||||
orig: orig,
|
orig: orig,
|
||||||
obfs: obfs,
|
obfs: obfs_,
|
||||||
readBuf: make([]byte, udpBufferSize),
|
readBuf: make([]byte, udpBufferSize),
|
||||||
writeBuf: make([]byte, udpBufferSize),
|
writeBuf: make([]byte, udpBufferSize),
|
||||||
sn: rand.Uint32() & 0xFFFF,
|
sn: rand.Uint32() & 0xFFFF,
|
||||||
|
21
pkg/obfs/dummy.go
Normal file
21
pkg/obfs/dummy.go
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package obfs
|
||||||
|
|
||||||
|
type DummyObfuscator struct{}
|
||||||
|
|
||||||
|
func NewDummyObfuscator() *DummyObfuscator {
|
||||||
|
return &DummyObfuscator{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DummyObfuscator) Deobfuscate(in []byte, out []byte) int {
|
||||||
|
pLen := len(in)
|
||||||
|
if pLen <= 0 || len(out) < pLen {
|
||||||
|
// Invalid
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
copy(out, in)
|
||||||
|
return pLen
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DummyObfuscator) Obfuscate(in []byte, out []byte) int {
|
||||||
|
return copy(out, in)
|
||||||
|
}
|
@ -42,12 +42,8 @@ func (ct *ClientTransport) quicPacketConn(proto string, server string, obfs obfs
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if obfs != nil {
|
oc := wechat.NewObfsWeChatUDPConn(conn, obfs)
|
||||||
oc := wechat.NewObfsWeChatUDPConn(conn, obfs)
|
return oc, nil
|
||||||
return oc, nil
|
|
||||||
} else {
|
|
||||||
return conn, nil
|
|
||||||
}
|
|
||||||
} else if proto == "faketcp" {
|
} else if proto == "faketcp" {
|
||||||
var conn *faketcp.TCPConn
|
var conn *faketcp.TCPConn
|
||||||
conn, err := faketcp.Dial("tcp", server)
|
conn, err := faketcp.Dial("tcp", server)
|
||||||
|
@ -101,12 +101,8 @@ func (st *ServerTransport) quicPacketConn(proto string, laddr string, obfs obfs.
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if obfs != nil {
|
oc := wechat.NewObfsWeChatUDPConn(conn, obfs)
|
||||||
oc := wechat.NewObfsWeChatUDPConn(conn, obfs)
|
return oc, nil
|
||||||
return oc, nil
|
|
||||||
} else {
|
|
||||||
return conn, nil
|
|
||||||
}
|
|
||||||
} else if proto == "faketcp" {
|
} else if proto == "faketcp" {
|
||||||
conn, err := faketcp.Listen("tcp", laddr)
|
conn, err := faketcp.Listen("tcp", laddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user