minor code changes

This commit is contained in:
Toby 2022-09-09 18:10:02 -07:00
parent f22705be2c
commit f476ad3f67
4 changed files with 18 additions and 20 deletions

View File

@ -25,13 +25,10 @@ type ObfsWeChatUDPConn struct {
sn uint32
}
func NewObfsWeChatUDPConn(orig *net.UDPConn, obfs_ obfs.Obfuscator) *ObfsWeChatUDPConn {
if obfs_ == nil {
obfs_ = obfs.NewDummyObfuscator()
}
func NewObfsWeChatUDPConn(orig *net.UDPConn, obfs obfs.Obfuscator) *ObfsWeChatUDPConn {
return &ObfsWeChatUDPConn{
orig: orig,
obfs: obfs_,
obfs: obfs,
readBuf: make([]byte, udpBufferSize),
writeBuf: make([]byte, udpBufferSize),
sn: rand.Uint32() & 0xFFFF,

View File

@ -7,13 +7,10 @@ func NewDummyObfuscator() *DummyObfuscator {
}
func (x *DummyObfuscator) Deobfuscate(in []byte, out []byte) int {
pLen := len(in)
if pLen <= 0 || len(out) < pLen {
// Invalid
if len(out) < len(in) {
return 0
}
copy(out, in)
return pLen
return copy(out, in)
}
func (x *DummyObfuscator) Obfuscate(in []byte, out []byte) int {

View File

@ -9,7 +9,7 @@ import (
"github.com/HyNetwork/hysteria/pkg/conns/faketcp"
"github.com/HyNetwork/hysteria/pkg/conns/udp"
"github.com/HyNetwork/hysteria/pkg/conns/wechat"
"github.com/HyNetwork/hysteria/pkg/obfs"
obfsPkg "github.com/HyNetwork/hysteria/pkg/obfs"
"github.com/lucas-clemente/quic-go"
)
@ -25,7 +25,7 @@ var DefaultClientTransport = &ClientTransport{
ResolvePreference: ResolvePreferenceDefault,
}
func (ct *ClientTransport) quicPacketConn(proto string, server string, obfs obfs.Obfuscator) (net.PacketConn, error) {
func (ct *ClientTransport) quicPacketConn(proto string, server string, obfs obfsPkg.Obfuscator) (net.PacketConn, error) {
if len(proto) == 0 || proto == "udp" {
conn, err := net.ListenUDP("udp", nil)
if err != nil {
@ -42,8 +42,10 @@ func (ct *ClientTransport) quicPacketConn(proto string, server string, obfs obfs
if err != nil {
return nil, err
}
oc := wechat.NewObfsWeChatUDPConn(conn, obfs)
return oc, nil
if obfs == nil {
obfs = obfsPkg.NewDummyObfuscator()
}
return wechat.NewObfsWeChatUDPConn(conn, obfs), nil
} else if proto == "faketcp" {
var conn *faketcp.TCPConn
conn, err := faketcp.Dial("tcp", server)
@ -61,7 +63,7 @@ func (ct *ClientTransport) quicPacketConn(proto string, server string, obfs obfs
}
}
func (ct *ClientTransport) QUICDial(proto string, server string, tlsConfig *tls.Config, quicConfig *quic.Config, obfs obfs.Obfuscator) (quic.Connection, error) {
func (ct *ClientTransport) QUICDial(proto string, server string, tlsConfig *tls.Config, quicConfig *quic.Config, obfs obfsPkg.Obfuscator) (quic.Connection, error) {
serverUDPAddr, err := net.ResolveUDPAddr("udp", server)
if err != nil {
return nil, err

View File

@ -10,7 +10,7 @@ import (
"github.com/HyNetwork/hysteria/pkg/conns/faketcp"
"github.com/HyNetwork/hysteria/pkg/conns/udp"
"github.com/HyNetwork/hysteria/pkg/conns/wechat"
"github.com/HyNetwork/hysteria/pkg/obfs"
obfsPkg "github.com/HyNetwork/hysteria/pkg/obfs"
"github.com/HyNetwork/hysteria/pkg/sockopt"
"github.com/HyNetwork/hysteria/pkg/utils"
"github.com/lucas-clemente/quic-go"
@ -76,7 +76,7 @@ var DefaultServerTransport = &ServerTransport{
ResolvePreference: ResolvePreferenceDefault,
}
func (st *ServerTransport) quicPacketConn(proto string, laddr string, obfs obfs.Obfuscator) (net.PacketConn, error) {
func (st *ServerTransport) quicPacketConn(proto string, laddr string, obfs obfsPkg.Obfuscator) (net.PacketConn, error) {
if len(proto) == 0 || proto == "udp" {
laddrU, err := net.ResolveUDPAddr("udp", laddr)
if err != nil {
@ -101,8 +101,10 @@ func (st *ServerTransport) quicPacketConn(proto string, laddr string, obfs obfs.
if err != nil {
return nil, err
}
oc := wechat.NewObfsWeChatUDPConn(conn, obfs)
return oc, nil
if obfs == nil {
obfs = obfsPkg.NewDummyObfuscator()
}
return wechat.NewObfsWeChatUDPConn(conn, obfs), nil
} else if proto == "faketcp" {
conn, err := faketcp.Listen("tcp", laddr)
if err != nil {
@ -119,7 +121,7 @@ func (st *ServerTransport) quicPacketConn(proto string, laddr string, obfs obfs.
}
}
func (st *ServerTransport) QUICListen(proto string, listen string, tlsConfig *tls.Config, quicConfig *quic.Config, obfs obfs.Obfuscator) (quic.Listener, error) {
func (st *ServerTransport) QUICListen(proto string, listen string, tlsConfig *tls.Config, quicConfig *quic.Config, obfs obfsPkg.Obfuscator) (quic.Listener, error) {
pktConn, err := st.quicPacketConn(proto, listen, obfs)
if err != nil {
return nil, err