summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreltrac <hi@eltr.ac>2026-11-05 11:20:32 +0800
committereltrac <hi@eltr.ac>2026-11-05 11:21:56 +0800
commit601227a20fd415ecacf39765f19cdf72acc689f4 (patch)
tree786d2fb877f8db58c1a4383f20a5a35230dd30b8
parent289790235fb0f556d87a84fc960b25ba9bf0f73e (diff)
asn: move asn/ to pkg/asn/; add lookup.goqmain
only export Lookup() and IsDatacenter()
-rw-r--r--pkg/asn/lookup.go18
-rw-r--r--pkg/asn/mapping.go (renamed from asn/mapping.go)4
2 files changed, 20 insertions, 2 deletions
diff --git a/pkg/asn/lookup.go b/pkg/asn/lookup.go
new file mode 100644
index 0000000..4851a6f
--- /dev/null
+++ b/pkg/asn/lookup.go
@@ -0,0 +1,18 @@
+package asn
+
+var AsnTable AsnMap
+
+// Lookup return metadata of given AS
+func Lookup(ASN int) AsnEntry {
+ if len(AsnTable) == 0 {
+ AsnTable = getMapping()
+ }
+
+ return AsnTable[ASN]
+}
+
+// IsDatacenter return bool value whether an AS is datajjij center or not
+func IsDatacenter(ASN int) bool {
+ // TODO
+ return false
+}
diff --git a/asn/mapping.go b/pkg/asn/mapping.go
index 79372a2..14272de 100644
--- a/asn/mapping.go
+++ b/pkg/asn/mapping.go
@@ -85,7 +85,7 @@ func parseMetadata(bytes []byte) ([]AsnEntry, error) {
}
// GetMapping returns a pointer to ASN-metadata mappings
-func GetMapping() *AsnMap {
+func getMapping() AsnMap {
bytes, err := useAsnSource()
if err != nil {
log.Fatalln("Failed to load ASN metadata: ", err)
@@ -101,5 +101,5 @@ func GetMapping() *AsnMap {
mapping[entry.ASN] = entry
}
- return &mapping
+ return mapping
}