Skip to content

Commit debd4db

Browse files
committed
refactor(tools): replace global variables with local to prevent race conditions
- Convert IPBlocks, IPAddress, Websites from global to local variables - Use lowercase naming convention (ipBlocks, ipAddress, websites) - Prevents data accumulation across multiple runs - Eliminates potential race condition risk
1 parent 0c2b268 commit debd4db

File tree

2 files changed

+24
-21
lines changed

2 files changed

+24
-21
lines changed

tools/find_asn.go

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,37 +8,36 @@ import (
88
"time"
99
)
1010

11-
var (
12-
IPBlocks []string
13-
IPAddress []string
14-
Websites [][]string
15-
)
16-
1711
func FindASN(asn string, domain string, domainTitle string, con bool, export bool, timeout int, interruptData *modules.InterruptData) {
12+
// Use local variables instead of global to avoid race conditions
13+
var ipBlocks []string
14+
var ipAddress []string
15+
var websites [][]string
16+
1817
re := regexp.MustCompile(`(?m)route:\s+([0-9\.\/]+)$`)
1918
for _, match := range re.FindAllStringSubmatch(modules.FindIPBlocks(asn), -1) {
20-
IPBlocks = append(IPBlocks, match[1])
19+
ipBlocks = append(ipBlocks, match[1])
2120
}
2221

23-
for _, block := range IPBlocks {
22+
for _, block := range ipBlocks {
2423
ips, err := modules.CalcIPAddress(block)
2524
if err != nil {
2625
return
2726
}
2827

29-
IPAddress = append(IPAddress, ips...)
28+
ipAddress = append(ipAddress, ips...)
3029
}
3130

3231
// Update interrupt data with IP blocks
3332
if interruptData != nil {
34-
interruptData.IPBlocks = IPBlocks
33+
interruptData.IPBlocks = ipBlocks
3534
}
3635

3736
fmt.Println("ASN: " + asn +
38-
"\nIP Block: " + strconv.Itoa(len(IPBlocks)) +
39-
"\nIP Address: " + strconv.Itoa(len(IPAddress)) +
37+
"\nIP Block: " + strconv.Itoa(len(ipBlocks)) +
38+
"\nIP Address: " + strconv.Itoa(len(ipAddress)) +
4039
"\nStart Time: " + time.Now().Local().String() +
41-
"\nEnd Time: " + time.Now().Add((time.Millisecond*time.Duration(timeout))*time.Duration(len(IPAddress))).Local().String())
40+
"\nEnd Time: " + time.Now().Add((time.Millisecond*time.Duration(timeout))*time.Duration(len(ipAddress))).Local().String())
4241

43-
modules.ResolveSite(IPAddress, Websites, domainTitle, IPBlocks, domain, con, export, timeout, interruptData)
42+
modules.ResolveSite(ipAddress, websites, domainTitle, ipBlocks, domain, con, export, timeout, interruptData)
4443
}

tools/find_ip.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,24 @@ import (
77
"time"
88
)
99

10-
func FindIP(IPBlocks []string, domain string, domainTitle string, con bool, export bool, timeout int, interruptData *modules.InterruptData) {
11-
for _, block := range IPBlocks {
10+
func FindIP(ipBlocks []string, domain string, domainTitle string, con bool, export bool, timeout int, interruptData *modules.InterruptData) {
11+
// Use local variables instead of global to avoid race conditions
12+
var ipAddress []string
13+
var websites [][]string
14+
15+
for _, block := range ipBlocks {
1216
ips, err := modules.CalcIPAddress(block)
1317
if err != nil {
1418
return
1519
}
1620

17-
IPAddress = append(IPAddress, ips...)
21+
ipAddress = append(ipAddress, ips...)
1822
}
1923

20-
fmt.Println("IP Block: " + strconv.Itoa(len(IPBlocks)) +
21-
"\nIP Address: " + strconv.Itoa(len(IPAddress)) +
24+
fmt.Println("IP Block: " + strconv.Itoa(len(ipBlocks)) +
25+
"\nIP Address: " + strconv.Itoa(len(ipAddress)) +
2226
"\nStart Time: " + time.Now().Local().String() +
23-
"\nEnd Time: " + time.Now().Add((time.Millisecond*time.Duration(timeout))*time.Duration(len(IPAddress))).Local().String())
27+
"\nEnd Time: " + time.Now().Add((time.Millisecond*time.Duration(timeout))*time.Duration(len(ipAddress))).Local().String())
2428

25-
modules.ResolveSite(IPAddress, Websites, domainTitle, IPBlocks, domain, con, export, timeout, interruptData)
29+
modules.ResolveSite(ipAddress, websites, domainTitle, ipBlocks, domain, con, export, timeout, interruptData)
2630
}

0 commit comments

Comments
 (0)