mirror of https://github.com/bjdgyc/anylink.git
优化代码
This commit is contained in:
parent
6ac4e90901
commit
7116aaa5a8
|
@ -1,5 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
action=$1
|
||||||
|
|
||||||
ver=$(cat version)
|
ver=$(cat version)
|
||||||
echo $ver
|
echo $ver
|
||||||
|
|
||||||
|
@ -18,6 +20,8 @@ docker build -t bjdgyc/anylink:latest --no-cache --progress=plain \
|
||||||
echo "docker tag latest $ver"
|
echo "docker tag latest $ver"
|
||||||
docker tag bjdgyc/anylink:latest bjdgyc/anylink:$ver
|
docker tag bjdgyc/anylink:latest bjdgyc/anylink:$ver
|
||||||
|
|
||||||
|
if [[ $action == "cntest" ]]; then
|
||||||
# docker tag bjdgyc/anylink:$ver registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:test-$ver
|
docker tag bjdgyc/anylink:$ver registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:test-$ver
|
||||||
# docker push registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:test-$ver
|
docker push registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:test-$ver
|
||||||
|
echo registry.cn-hangzhou.aliyuncs.com/bjdgyc/anylink:test-$ver
|
||||||
|
fi
|
||||||
|
|
|
@ -85,6 +85,13 @@ func initIpPool() {
|
||||||
// ipPoolMux.Unlock()
|
// ipPoolMux.Unlock()
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
func ipInPool(ip net.IP) bool {
|
||||||
|
if utils.Ip2long(ip) >= IpPool.IpLongMin && utils.Ip2long(ip) <= IpPool.IpLongMax {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// AcquireIp 获取动态ip
|
// AcquireIp 获取动态ip
|
||||||
func AcquireIp(username, macAddr string, uniqueMac bool) (newIp net.IP) {
|
func AcquireIp(username, macAddr string, uniqueMac bool) (newIp net.IP) {
|
||||||
base.Trace("AcquireIp start:", username, macAddr, uniqueMac)
|
base.Trace("AcquireIp start:", username, macAddr, uniqueMac)
|
||||||
|
@ -125,8 +132,7 @@ func AcquireIp(username, macAddr string, uniqueMac bool) (newIp net.IP) {
|
||||||
// IpPool.Ipv4IPNet.Contains(ip) &&
|
// IpPool.Ipv4IPNet.Contains(ip) &&
|
||||||
// ip符合规范
|
// ip符合规范
|
||||||
// 检测原有ip是否在新的ip池内
|
// 检测原有ip是否在新的ip池内
|
||||||
if !ok && utils.Ip2long(ip) >= IpPool.IpLongMin &&
|
if !ok && ipInPool(ip) {
|
||||||
utils.Ip2long(ip) <= IpPool.IpLongMax {
|
|
||||||
mi.Username = username
|
mi.Username = username
|
||||||
mi.LastLogin = tNow
|
mi.LastLogin = tNow
|
||||||
mi.UniqueMac = uniqueMac
|
mi.UniqueMac = uniqueMac
|
||||||
|
@ -150,7 +156,7 @@ func AcquireIp(username, macAddr string, uniqueMac bool) (newIp net.IP) {
|
||||||
|
|
||||||
// 没有获取到mac的情况
|
// 没有获取到mac的情况
|
||||||
ipMaps := []dbdata.IpMap{}
|
ipMaps := []dbdata.IpMap{}
|
||||||
err = dbdata.FindWhere(&ipMaps, 50, 1, "username=?", username)
|
err = dbdata.FindWhere(&ipMaps, 30, 1, "username=?", username)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// 没有查询到数据
|
// 没有查询到数据
|
||||||
if dbdata.CheckErrNotFound(err) {
|
if dbdata.CheckErrNotFound(err) {
|
||||||
|
@ -180,8 +186,7 @@ func AcquireIp(username, macAddr string, uniqueMac bool) (newIp net.IP) {
|
||||||
|
|
||||||
// 没有mac的 不需要验证租期
|
// 没有mac的 不需要验证租期
|
||||||
// mi.LastLogin.Before(leaseTime) &&
|
// mi.LastLogin.Before(leaseTime) &&
|
||||||
if utils.Ip2long(ip) >= IpPool.IpLongMin &&
|
if ipInPool(ip) {
|
||||||
utils.Ip2long(ip) <= IpPool.IpLongMax {
|
|
||||||
mi.Username = username
|
mi.Username = username
|
||||||
mi.LastLogin = tNow
|
mi.LastLogin = tNow
|
||||||
mi.MacAddr = macAddr
|
mi.MacAddr = macAddr
|
||||||
|
@ -199,8 +204,7 @@ func AcquireIp(username, macAddr string, uniqueMac bool) (newIp net.IP) {
|
||||||
var (
|
var (
|
||||||
// 记录循环点
|
// 记录循环点
|
||||||
loopCurIp uint32
|
loopCurIp uint32
|
||||||
loopFarIp = &dbdata.IpMap{LastLogin: time.Now()}
|
loopFarIp *dbdata.IpMap
|
||||||
loopFarI = uint32(0)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func loopIp(username, macAddr string, uniqueMac bool) net.IP {
|
func loopIp(username, macAddr string, uniqueMac bool) net.IP {
|
||||||
|
@ -211,7 +215,6 @@ func loopIp(username, macAddr string, uniqueMac bool) net.IP {
|
||||||
|
|
||||||
// 重新赋值
|
// 重新赋值
|
||||||
loopFarIp = &dbdata.IpMap{LastLogin: time.Now()}
|
loopFarIp = &dbdata.IpMap{LastLogin: time.Now()}
|
||||||
loopFarI = uint32(0)
|
|
||||||
|
|
||||||
i, ip = loopLong(loopCurIp, IpPool.IpLongMax, username, macAddr, uniqueMac)
|
i, ip = loopLong(loopCurIp, IpPool.IpLongMax, username, macAddr, uniqueMac)
|
||||||
if ip != nil {
|
if ip != nil {
|
||||||
|
@ -298,7 +301,6 @@ func loopLong(start, end uint32, username, macAddr string, uniqueMac bool) (uint
|
||||||
// 其他情况判断最早登陆
|
// 其他情况判断最早登陆
|
||||||
if mi.LastLogin.Before(loopFarIp.LastLogin) {
|
if mi.LastLogin.Before(loopFarIp.LastLogin) {
|
||||||
loopFarIp = mi
|
loopFarIp = mi
|
||||||
loopFarI = i
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue