mirror of
https://github.com/bjdgyc/anylink.git
synced 2025-09-22 11:46:08 +08:00
修改为sql数据库
This commit is contained in:
@@ -67,10 +67,10 @@ func AcquireIp(username, macAddr string) net.IP {
|
||||
|
||||
// 判断已经分配过
|
||||
mi := &dbdata.IpMap{}
|
||||
err := dbdata.One("MacAddr", macAddr, mi)
|
||||
err := dbdata.One("mac_addr", macAddr, mi)
|
||||
if err == nil {
|
||||
ip := mi.IpAddr
|
||||
ipStr := ip.String()
|
||||
ipStr := mi.IpAddr
|
||||
ip := net.ParseIP(ipStr)
|
||||
// 跳过活跃连接
|
||||
_, ok := ipActive[ipStr]
|
||||
// 检测原有ip是否在新的ip池内
|
||||
@@ -78,7 +78,7 @@ func AcquireIp(username, macAddr string) net.IP {
|
||||
mi.Username = username
|
||||
mi.LastLogin = tNow
|
||||
// 回写db数据
|
||||
_ = dbdata.Save(mi)
|
||||
_ = dbdata.Add(mi)
|
||||
ipActive[ipStr] = true
|
||||
return ip
|
||||
}
|
||||
@@ -99,12 +99,12 @@ func AcquireIp(username, macAddr string) net.IP {
|
||||
}
|
||||
|
||||
v := &dbdata.IpMap{}
|
||||
err = dbdata.One("IpAddr", ip, v)
|
||||
err = dbdata.One("ip_addr", ipStr, v)
|
||||
if err != nil {
|
||||
if dbdata.CheckErrNotFound(err) {
|
||||
// 该ip没有被使用
|
||||
mi = &dbdata.IpMap{IpAddr: ip, MacAddr: macAddr, Username: username, LastLogin: tNow}
|
||||
_ = dbdata.Save(mi)
|
||||
mi = &dbdata.IpMap{IpAddr: ipStr, MacAddr: macAddr, Username: username, LastLogin: tNow}
|
||||
_ = dbdata.Add(mi)
|
||||
ipActive[ipStr] = true
|
||||
return ip
|
||||
}
|
||||
@@ -120,9 +120,9 @@ func AcquireIp(username, macAddr string) net.IP {
|
||||
// 已经超过租期
|
||||
if tNow.Sub(v.LastLogin) > time.Duration(base.Cfg.IpLease)*time.Second {
|
||||
_ = dbdata.Del(v)
|
||||
mi = &dbdata.IpMap{IpAddr: ip, MacAddr: macAddr, Username: username, LastLogin: tNow}
|
||||
mi = &dbdata.IpMap{IpAddr: ipStr, MacAddr: macAddr, Username: username, LastLogin: tNow}
|
||||
// 重写db数据
|
||||
_ = dbdata.Save(mi)
|
||||
_ = dbdata.Add(mi)
|
||||
ipActive[ipStr] = true
|
||||
return ip
|
||||
}
|
||||
@@ -139,11 +139,11 @@ func AcquireIp(username, macAddr string) net.IP {
|
||||
}
|
||||
|
||||
// 使用最早登陆的mac ip
|
||||
ip := farIp.IpAddr
|
||||
ipStr := ip.String()
|
||||
mi = &dbdata.IpMap{IpAddr: ip, MacAddr: macAddr, Username: username, LastLogin: tNow}
|
||||
ipStr := farIp.IpAddr
|
||||
ip := net.ParseIP(ipStr)
|
||||
mi = &dbdata.IpMap{IpAddr: ipStr, MacAddr: macAddr, Username: username, LastLogin: tNow}
|
||||
// 回写db数据
|
||||
_ = dbdata.Save(mi)
|
||||
_ = dbdata.Add(mi)
|
||||
ipActive[ipStr] = true
|
||||
return ip
|
||||
}
|
||||
@@ -155,9 +155,9 @@ func ReleaseIp(ip net.IP, macAddr string) {
|
||||
|
||||
delete(ipActive, ip.String())
|
||||
mi := &dbdata.IpMap{}
|
||||
err := dbdata.One("IpAddr", ip, mi)
|
||||
err := dbdata.One("ip_addr", ip.String(), mi)
|
||||
if err == nil {
|
||||
mi.LastLogin = time.Now()
|
||||
_ = dbdata.Save(mi)
|
||||
_ = dbdata.Add(mi)
|
||||
}
|
||||
}
|
||||
|
@@ -15,7 +15,8 @@ import (
|
||||
func preData(tmpDir string) {
|
||||
base.Test()
|
||||
tmpDb := path.Join(tmpDir, "test.db")
|
||||
base.Cfg.DbFile = tmpDb
|
||||
base.Cfg.DbType = "sqlite3"
|
||||
base.Cfg.DbDsn = tmpDb
|
||||
base.Cfg.Ipv4CIDR = "192.168.3.0/24"
|
||||
base.Cfg.Ipv4Start = "192.168.3.1"
|
||||
base.Cfg.Ipv4End = "192.168.3.199"
|
||||
@@ -27,7 +28,7 @@ func preData(tmpDir string) {
|
||||
Name: "group1",
|
||||
Bandwidth: 1000,
|
||||
}
|
||||
_ = dbdata.Save(&group)
|
||||
_ = dbdata.Add(&group)
|
||||
initIpPool()
|
||||
}
|
||||
|
||||
|
@@ -55,7 +55,7 @@ type ConnSession struct {
|
||||
}
|
||||
|
||||
type DtlsSession struct {
|
||||
isActive int32
|
||||
isActive int32
|
||||
CloseChan chan struct{}
|
||||
closeOnce sync.Once
|
||||
IpAddr net.IP
|
||||
@@ -183,9 +183,9 @@ func (s *Session) NewConn() *ConnSession {
|
||||
IpAddr: ip,
|
||||
closeOnce: sync.Once{},
|
||||
CloseChan: make(chan struct{}),
|
||||
PayloadIn: make(chan *Payload),
|
||||
PayloadOutCstp: make(chan *Payload),
|
||||
PayloadOutDtls: make(chan *Payload),
|
||||
PayloadIn: make(chan *Payload, 64),
|
||||
PayloadOutCstp: make(chan *Payload, 64),
|
||||
PayloadOutDtls: make(chan *Payload, 64),
|
||||
dSess: &atomic.Value{},
|
||||
}
|
||||
|
||||
@@ -236,7 +236,7 @@ func (cs *ConnSession) NewDtlsConn() *DtlsSession {
|
||||
}
|
||||
|
||||
dSess := &DtlsSession{
|
||||
isActive: 1,
|
||||
isActive: 1,
|
||||
CloseChan: make(chan struct{}),
|
||||
closeOnce: sync.Once{},
|
||||
IpAddr: cs.IpAddr,
|
||||
|
Reference in New Issue
Block a user