mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-02-06 05:30:05 +00:00
✨ 内置HTTP内网穿透
This commit is contained in:
31
service/singleton/nat.go
Normal file
31
service/singleton/nat.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package singleton
|
||||
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"github.com/naiba/nezha/model"
|
||||
)
|
||||
|
||||
var natCache = make(map[string]*model.NAT)
|
||||
var natCacheRwLock = new(sync.RWMutex)
|
||||
|
||||
func initNAT() {
|
||||
OnNATUpdate()
|
||||
}
|
||||
|
||||
func OnNATUpdate() {
|
||||
natCacheRwLock.Lock()
|
||||
defer natCacheRwLock.Unlock()
|
||||
var nats []*model.NAT
|
||||
DB.Find(&nats)
|
||||
natCache = make(map[string]*model.NAT)
|
||||
for i := 0; i < len(nats); i++ {
|
||||
natCache[nats[i].Domain] = nats[i]
|
||||
}
|
||||
}
|
||||
|
||||
func GetNATConfigByDomain(domain string) *model.NAT {
|
||||
natCacheRwLock.RLock()
|
||||
defer natCacheRwLock.RUnlock()
|
||||
return natCache[domain]
|
||||
}
|
||||
Reference in New Issue
Block a user