Fix: vmess udp crash

This commit is contained in:
Dreamacro
2020-02-17 17:34:19 +08:00
parent e9032c55fa
commit 7b48138ad0
9 changed files with 81 additions and 43 deletions

View File

@ -1,24 +1,25 @@
package nat
import (
"net"
"sync"
C "github.com/Dreamacro/clash/constant"
)
type Table struct {
mapping sync.Map
}
func (t *Table) Set(key string, pc net.PacketConn) {
func (t *Table) Set(key string, pc C.PacketConn) {
t.mapping.Store(key, pc)
}
func (t *Table) Get(key string) net.PacketConn {
func (t *Table) Get(key string) C.PacketConn {
item, exist := t.mapping.Load(key)
if !exist {
return nil
}
return item.(net.PacketConn)
return item.(C.PacketConn)
}
func (t *Table) GetOrCreateLock(key string) (*sync.WaitGroup, bool) {