mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-03 23:20:25 +08:00
修复IP名单中“所有IP”类型的IP不起作用的问题
This commit is contained in:
@@ -221,15 +221,15 @@ func (this *IPList) addItem(item *IPItem, lock bool, sortable bool) {
|
|||||||
this.itemsMap[item.Id] = item
|
this.itemsMap[item.Id] = item
|
||||||
|
|
||||||
// 展开
|
// 展开
|
||||||
if !IsZero(item.IPFrom) {
|
if item.Type == IPItemTypeAll {
|
||||||
|
this.allItemsMap[item.Id] = item
|
||||||
|
} else if !IsZero(item.IPFrom) {
|
||||||
if !IsZero(item.IPTo) {
|
if !IsZero(item.IPTo) {
|
||||||
this.sortedRangeItems = append(this.sortedRangeItems, item)
|
this.sortedRangeItems = append(this.sortedRangeItems, item)
|
||||||
shouldSort = true
|
shouldSort = true
|
||||||
} else {
|
} else {
|
||||||
this.ipMap[ToHex(item.IPFrom)] = item
|
this.ipMap[ToHex(item.IPFrom)] = item
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
this.allItemsMap[item.Id] = item
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if item.ExpiredAt > 0 {
|
if item.ExpiredAt > 0 {
|
||||||
@@ -310,6 +310,12 @@ func (this *IPList) deleteItem(itemId uint64) {
|
|||||||
// 从buffer中删除
|
// 从buffer中删除
|
||||||
delete(this.bufferItemsMap, itemId)
|
delete(this.bufferItemsMap, itemId)
|
||||||
|
|
||||||
|
// 从all items中删除
|
||||||
|
_, ok := this.allItemsMap[itemId]
|
||||||
|
if ok {
|
||||||
|
delete(this.allItemsMap, itemId)
|
||||||
|
}
|
||||||
|
|
||||||
// 检查是否存在
|
// 检查是否存在
|
||||||
oldItem, existsOld := this.itemsMap[itemId]
|
oldItem, existsOld := this.itemsMap[itemId]
|
||||||
if !existsOld {
|
if !existsOld {
|
||||||
@@ -327,13 +333,6 @@ func (this *IPList) deleteItem(itemId uint64) {
|
|||||||
|
|
||||||
delete(this.itemsMap, itemId)
|
delete(this.itemsMap, itemId)
|
||||||
|
|
||||||
// 是否为All Item
|
|
||||||
_, ok := this.allItemsMap[itemId]
|
|
||||||
if ok {
|
|
||||||
delete(this.allItemsMap, itemId)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除排序中的Item
|
// 删除排序中的Item
|
||||||
if !IsZero(oldItem.IPTo) {
|
if !IsZero(oldItem.IPTo) {
|
||||||
var index = -1
|
var index = -1
|
||||||
|
|||||||
@@ -245,19 +245,37 @@ func TestIPList_Contains_Many(t *testing.T) {
|
|||||||
func TestIPList_ContainsAll(t *testing.T) {
|
func TestIPList_ContainsAll(t *testing.T) {
|
||||||
var a = assert.NewAssertion(t)
|
var a = assert.NewAssertion(t)
|
||||||
|
|
||||||
var list = iplibrary.NewIPList()
|
{
|
||||||
list.Add(&iplibrary.IPItem{
|
var list = iplibrary.NewIPList()
|
||||||
Id: 1,
|
list.Add(&iplibrary.IPItem{
|
||||||
Type: "all",
|
Id: 1,
|
||||||
IPFrom: nil,
|
Type: "all",
|
||||||
})
|
IPFrom: nil,
|
||||||
var b = list.Contains(iputils.ToBytes("192.168.1.1"))
|
})
|
||||||
a.IsTrue(b)
|
var b = list.Contains(iputils.ToBytes("192.168.1.1"))
|
||||||
|
a.IsTrue(b)
|
||||||
|
|
||||||
list.Delete(1)
|
list.Delete(1)
|
||||||
|
|
||||||
b = list.Contains(iputils.ToBytes("192.168.1.1"))
|
b = list.Contains(iputils.ToBytes("192.168.1.1"))
|
||||||
a.IsFalse(b)
|
a.IsFalse(b)
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
var list = iplibrary.NewIPList()
|
||||||
|
list.Add(&iplibrary.IPItem{
|
||||||
|
Id: 1,
|
||||||
|
Type: "all",
|
||||||
|
IPFrom: iputils.ToBytes("0.0.0.0"),
|
||||||
|
})
|
||||||
|
var b = list.Contains(iputils.ToBytes("192.168.1.1"))
|
||||||
|
a.IsTrue(b)
|
||||||
|
|
||||||
|
list.Delete(1)
|
||||||
|
|
||||||
|
b = list.Contains(iputils.ToBytes("192.168.1.1"))
|
||||||
|
a.IsFalse(b)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestIPList_ContainsIPStrings(t *testing.T) {
|
func TestIPList_ContainsIPStrings(t *testing.T) {
|
||||||
|
|||||||
Reference in New Issue
Block a user