Skip to content

Commit

Permalink
perf: asynchronously move the ipv6 initialisation
Browse files Browse the repository at this point in the history
  • Loading branch information
Jorropo committed Apr 12, 2022
1 parent 9136dd0 commit 1a3c738
Show file tree
Hide file tree
Showing 3 changed files with 79,109 additions and 72,091 deletions.
2 changes: 2 additions & 0 deletions asn.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ func (a *asnStore) AsnForIPv6(ip net.IP) (string, error) {
func newAsnStore() (*asnStore, error) {
cr := cidranger.NewPCTrieRanger()

loadipv6CidrToAsnMap()

for k, v := range ipv6CidrToAsnMap {
_, nn, err := net.ParseCIDR(k)
if err != nil {
Expand Down
18 changes: 15 additions & 3 deletions generate/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,24 @@ func writeMappingToFile(f *os.File, m map[string]string, mapName string) {
}
}
printf("package %s\n\n", pkgName)
printf("import \"sync\"\n\n")
printf("// Code generated by generate/main.go DO NOT EDIT\n")
printf("var %s = map[string]string {", mapName)
printf("// %s is only valid after calling load%s and it returned\n", mapName, mapName)
printf("var %s map[string]string\n\n", mapName)
printf("// Code generated by generate/main.go DO NOT EDIT\n")
printf("var %sOnce sync.Once\n\n", mapName)
printf("// Code generated by generate/main.go DO NOT EDIT\n")
printf("func init() { go load%s() }\n\n", mapName)
printf("// Code generated by generate/main.go DO NOT EDIT\n")
printf("func load%s() {\n", mapName)
printf("\t%sOnce.Do(func(){\n", mapName)
printf("\t\t%s = map[string]string {", mapName)
for k, v := range m {
printf("\n\t \"%s\": \"%s\",", k, v)
printf("\n\t\t\t\"%s\": \"%s\",", k, v)
}
printf("\n}")
printf("\n\t\t}\n")
printf("\t})\n")
printf("}\n\n")
}

func readMappingFile(path string) map[string]string {
Expand Down
Loading

0 comments on commit 1a3c738

Please sign in to comment.