mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2025-01-11 11:32:53 +08:00
chore: shadowsocks listener support the "udp" setting
This commit is contained in:
parent
154fbb34ea
commit
0336435ebc
@ -9,6 +9,7 @@ type ShadowsocksServer struct {
|
||||
Listen string
|
||||
Password string
|
||||
Cipher string
|
||||
Udp bool
|
||||
}
|
||||
|
||||
func (t ShadowsocksServer) String() string {
|
||||
|
@ -11,6 +11,7 @@ type ShadowSocksOption struct {
|
||||
BaseOption
|
||||
Password string `inbound:"password"`
|
||||
Cipher string `inbound:"cipher"`
|
||||
UDP bool `inbound:"udp,omitempty"`
|
||||
}
|
||||
|
||||
func (o ShadowSocksOption) Equal(config C.InboundConfig) bool {
|
||||
@ -37,6 +38,7 @@ func NewShadowSocks(options *ShadowSocksOption) (*ShadowSocks, error) {
|
||||
Listen: base.RawAddress(),
|
||||
Password: options.Password,
|
||||
Cipher: options.Cipher,
|
||||
Udp: options.UDP,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
@ -271,6 +271,7 @@ func ReCreateShadowSocks(shadowSocksConfig string, tcpIn chan<- C.ConnContext, u
|
||||
Listen: addr,
|
||||
Password: password,
|
||||
Cipher: cipher,
|
||||
Udp: true,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -73,7 +73,7 @@ func ParseListener(mapping map[string]any) (C.InboundListener, error) {
|
||||
}
|
||||
listener, err = IN.NewTun(tunOption)
|
||||
case "shadowsocks":
|
||||
shadowsocksOption := &IN.ShadowSocksOption{}
|
||||
shadowsocksOption := &IN.ShadowSocksOption{UDP: true}
|
||||
err = decoder.Decode(mapping, shadowsocksOption)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -33,12 +33,14 @@ func New(config LC.ShadowsocksServer, tcpIn chan<- C.ConnContext, udpIn chan<- C
|
||||
for _, addr := range strings.Split(config.Listen, ",") {
|
||||
addr := addr
|
||||
|
||||
if config.Udp {
|
||||
//UDP
|
||||
ul, err := NewUDP(addr, pickCipher, udpIn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
sl.udpListeners = append(sl.udpListeners, ul)
|
||||
}
|
||||
|
||||
//TCP
|
||||
l, err := inbound.Listen("tcp", addr)
|
||||
|
@ -76,6 +76,7 @@ func New(config LC.ShadowsocksServer, tcpIn chan<- C.ConnContext, udpIn chan<- C
|
||||
for _, addr := range strings.Split(config.Listen, ",") {
|
||||
addr := addr
|
||||
|
||||
if config.Udp {
|
||||
//UDP
|
||||
ul, err := net.ListenPacket("udp", addr)
|
||||
if err != nil {
|
||||
@ -107,6 +108,7 @@ func New(config LC.ShadowsocksServer, tcpIn chan<- C.ConnContext, udpIn chan<- C
|
||||
})
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
//TCP
|
||||
l, err := inbound.Listen("tcp", addr)
|
||||
|
Loading…
x
Reference in New Issue
Block a user