openGeoIP opens cfg.GeoIP.Path and returns a (Lookuper, closer) pair; on open failure (missing/unreadable mmdb) it returns geoip.NopService() and a no-op closer so the rest of the wire-up sees a consistent non-nil interface and the binary stays healthy in environments without a MaxMind license. buildEventStack now accepts a geoip.Lookuper and threads it into event.ServiceConfig. Close is deferred in run() so the mmdb file handle releases on graceful shutdown; a close-error is logged at warn (not fatal). |
||
|---|---|---|
| .. | ||
| cmd | ||
| internal | ||
| .air.toml | ||
| .gitignore | ||
| .golangci.yml | ||
| config.yaml | ||
| go.mod | ||
| go.sum | ||