mirror of
https://github.com/safing/portmaster
synced 2025-09-01 10:09:11 +00:00
40 lines
958 B
Go
40 lines
958 B
Go
package geoip
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/safing/portbase/api"
|
|
"github.com/safing/portbase/modules"
|
|
"github.com/safing/portmaster/service/updates"
|
|
)
|
|
|
|
var module *modules.Module
|
|
|
|
func init() {
|
|
module = modules.Register("geoip", prep, nil, nil, "base", "updates")
|
|
}
|
|
|
|
func prep() error {
|
|
if err := api.RegisterEndpoint(api.Endpoint{
|
|
Path: "intel/geoip/countries",
|
|
Read: api.PermitUser,
|
|
// Do not attach to module, as the data is always available anyway.
|
|
StructFunc: func(ar *api.Request) (i interface{}, err error) {
|
|
return countries, nil
|
|
},
|
|
Name: "Get Country Information",
|
|
Description: "Returns a map of country information centers indexed by ISO-A2 country code",
|
|
}); err != nil {
|
|
return err
|
|
}
|
|
|
|
return module.RegisterEventHook(
|
|
updates.ModuleName,
|
|
updates.ResourceUpdateEvent,
|
|
"Check for GeoIP database updates",
|
|
func(c context.Context, i interface{}) error {
|
|
worker.triggerUpdate()
|
|
return nil
|
|
},
|
|
)
|
|
}
|