mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 07:40:56 +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